Sot*_*ost 0 objective-c objective-c-runtime
我有下一个代码:
// UITextField+Navigation.h
@interface UITextField (Navigation)
@property (weak, nonatomic) UIControl *nextUIControl;
@end
//UITextField+Navigation.m
@implementation UITextField (Navigation)
- (UIControl *) nextUIControl {
return objc_getAssociatedObject(self, &defaultHashKey);
}
- (void) setNextUIControl:(UIControl *)nextUIControl {
objc_setAssociatedObject(self, &defaultHashKey, nextUIControl, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end
Run Code Online (Sandbox Code Playgroud)
有什么区别:
return objc_getAssociatedObject(self, &defaultHashKey);
Run Code Online (Sandbox Code Playgroud)
和
return self.nextUIControl;
Run Code Online (Sandbox Code Playgroud)
我试过两种方式,第二种进入无限循环......为什么?也许这是一个明显的答案,但我是初学者^^'
提前致谢.
self.nextUIControl是点符号[self nextUIControl].事实上,事实上,你正在呼唤无休止的递归.
您的代码演示了在类类别中定义的属性.由于类别不能引入其他实例变量,因此关联对象用于设置和获取.
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |