首先,我看到有很多关于“无法识别的选择器发送到实例”的问题 我见过很少但没有看到关于访问类别属性中定义的内容......
我在UILabel上有一个属性的类别 确定了吸气剂和定位器 实际上我在2个不同的类别中拥有相同的属性(2个不同的类别:UIButton和UILabel) 问题是我可以访问UIButton的这个属性,但不能访问UILabel 一旦我尝试访问UILabel(文本)类别中的任何方法/属性,它就会删除“ - [UILabel test]:无法识别的选择器发送到实例0x4e539f0”异常。
导入两个类别文件。
我不知道这是什么问题。
以下是一些代码:
// UILabel+text.h
@interface UILabel (text)
- (void)test;
@end
// UILabel+text.m
@implementation UILabel (text)
- (void)test {
NSLog(@"test");
}
@end
// UIButton+text.h
@interface UIButton (text)
- (void)test;
@end
// UIButton+text.m
@implementation UIButton (text)
- (void)test {
NSLog(@"test");// works
}
@end
// Usage (in UIViewController class) - both elements are defined in XIB
[self.button test];// works
[self.label test];// exception
任何帮助将不胜感激 我不知道可能出现的问题...
谢谢。
迈克尔。
答案 0 :(得分:42)
您使用的是静态库吗?如果是这样,请将all_load添加到Other Linker Flags。
你确定“UILabel + text.m”在目标中吗?
答案 1 :(得分:0)
我在具有多个静态框架的项目中遇到了相同的问题。
将all_load
添加到链接器标志并不能解决我的问题!
我必须启用构建设置GENERATE_MASTER_OBJECT_FILE = YES
,以便在运行时正确找到该类别。