标签: objective-c-category

类扩展与类类别

类扩展@interface Class () 功能更强大,可以将变量注入类中.类别@interface Class (Category)不能.

还有什么其他差异,何时应该在类扩展中使用类别?

objective-c objective-c-category class-extensions

81
推荐指数
3
解决办法
6万
查看次数

为所有UIImageViews添加圆角

我想在我的项目中为所有UIImageViews添加一些圆角.我已经有了代码工作,但我必须将它应用于每个图像; 我应该继承UIImageView来添加它吗?如果是这样,有人可以给我一些指示如何做到这一点?

这是代码

- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *mainpath = [[NSBundle mainBundle] bundlePath];
    welcomeImageView.image = [UIImage imageWithContentsOfFile:[mainpath stringByAppendingString:@"/test.png"]];
    welcomeImageView.layer.cornerRadius = 9.0;
    welcomeImageView.layer.masksToBounds = YES;
    welcomeImageView.layer.borderColor = [UIColor blackColor].CGColor;
    welcomeImageView.layer.borderWidth = 3.0;
    CGRect frame = welcomeImageView.frame;
    frame.size.width = 100;
    frame.size.height = 100;
    welcomeImageView.frame = frame;
}
Run Code Online (Sandbox Code Playgroud)

code-reuse subclass ios objective-c-category

78
推荐指数
4
解决办法
6万
查看次数

协议与类别

任何人都可以解释Objective-C中协议类别之间的差异吗?你什么时候用另一个?

objective-c objective-c-category objective-c-protocol

36
推荐指数
4
解决办法
2万
查看次数

添加NSManagedObject子类,重复链接时出现重复的符号错误

我试图在Xcode中自动创建NSManagedObject子类(2个相关实体).它们是这样生成的:

在此输入图像描述

但是,在我做任何进一步操作之前,当我尝试构建并运行它时,会发生链接错误,如下所示:

duplicate symbol _OBJC_CLASS_$_Photo in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photo+CoreDataClass.o duplicate symbol _OBJC_METACLASS_$_Photo in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photo+CoreDataClass.o duplicate symbol _OBJC_CLASS_$_Photography in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photography+CoreDataClass.o duplicate symbol _OBJC_METACLASS_$_Photography in: /Users/Kefeng/Library/Developer/Xcode/DerivedData/Photomania-aellrakjngugnzcgrleiytvrfvyt/Build/Intermediates/Photomania.build/Debug-iphonesimulator/Photomania.build/Objects-normal/x86_64/Photography+CoreDataClass.o ld: 4 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

我曾多次尝试创建新项目并做同样的事情.我的初衷是将一些自定义方法添加到子类中.但是当我添加任何东西时,例如Photo+CoreData.h/m,出现与上面相同的错误.

我找到了一些关于"双重包含"或"将文件保存到错误的目录"的答案,但我没有这样做.有人对此有任何想法吗?

xcode nsmanagedobject ios objective-c-category

34
推荐指数
4
解决办法
1万
查看次数

何时使用类别以及何时使用子类?

谁能告诉我何时使用类别以及何时在Objective-C中使用子类?还请告诉我它们的优点和缺点.

inheritance subclass objective-c objective-c-category

29
推荐指数
3
解决办法
2万
查看次数

如何在Xcode 7.2中创建一个类别?

如何在Xcode 7.2中为objective-c创建现有Cocoa Touch类的类别?我一直在寻找一个小时,但找不到任何有用的东西.

xcode cocoa-touch objective-c objective-c-category

21
推荐指数
1
解决办法
5918
查看次数

将相同类别添加到多个类

我有一个Objective-C类别,我想在不重复类别中包含的代码的情况下添加到多个类中.我只想将相同的方法添加到多个类中.

我对现有类NSManagedObject的子类(Book,Chapter,Page),我想在所有这些子类的清洁和维护的方式添加常用功能.

一种方法是给类添加到他们的共同的超(NSManagedObject),但有增加类别的方法,所有的结果NSManagedObject子的时候我想的方法添加三个NSManagedObject子类(Book,Chapter,Page).

另一种解决办法是子类NSManagedObject,然后有Book,ChapterPage来自继承NSManagedObject的子类.这是最干净,最直接的方法.这种方法的一大缺点是当数据模型发生变化并且Xcode重新生成子类时,它会将它们重置为继承NSManagedObject而不是继承SubclassedManagedObject.如果可能的话,我想避免使用像mogenerator/Xmo这样的东西.

是否可以在多个类上添加单个类别而无需重复代码?

谢谢.

cocoa cocoa-touch objective-c ios objective-c-category

20
推荐指数
2
解决办法
2780
查看次数

Java可以在Objective C中做类似的事情吗?

考虑以下情况:

Object > MyClass > MyClassA, MyClassB
Run Code Online (Sandbox Code Playgroud)

例如,如果我想要对象级别的东西,我添加了printDetail(); 我怎样才能在Java实现中做到这一点?此外,我可以覆盖所有Object的方法.例如,我需要一个全新的.toString(),我可以覆盖它吗?谢谢.

java objective-c-category

18
推荐指数
2
解决办法
7355
查看次数

objc_setAssociatedObject在iOS中不可用吗?

我正在尝试使用关联对象API向类别添加"属性".

objc_setAssociatedObject(self, &kIsAnimatingAssocObjKey, animating, 
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
Run Code Online (Sandbox Code Playgroud)

Xcode抱怨:

函数'objc_setAssociatedObject'的隐式声明在C99中无效

使用未声明的标识符'OBJC_ASSOCIATION_RETAIN_NONATOMIC'

Xcode 4.5.2,带有部署目标的iOS SDK 6.它不起作用.

关于obj_assoc 的文章都没有提到我必须导入任何特殊内容.

xcode objective-c ios objective-c-category

18
推荐指数
1
解决办法
5261
查看次数

为什么类别不能包含实例变量?

我知道我们可以使用关联引用来调用类别中的类似于ivar的行为.但是,无法在类别中声明新的ivars背后的具体原因是什么?

是因为我们会入侵班级的私人空间吗?或者还有其他原因吗?如果是的话,我会很感激一个例子,它显示了在类别中声明ivars的能力,可以打破它所破坏的任何东西.

objective-c objective-c-category ivar

18
推荐指数
1
解决办法
4253
查看次数