我正在使用关联的引用作为我的类别的属性的存储
头文件包含:
@interface UIImageView (Spinning)
@property (nonatomic, assign) BOOL animating;
@end
实施是
- (void)setAnimating:(BOOL)value {
objc_setAssociatedObject(self, animatingKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
但是,我收到了上面一行的警告
Implicit conversion of 'BOOL' (aka 'signed char') to 'id' is disallowed with ARC
如果您知道我在这里做错了什么,请帮助如何避免这个问题
The objc_setAssociatedObject
函数需要一个 Objective-C 对象作为第三个参数。但是你试图传递一个非对象BOOL
value.
这与尝试添加一个没有什么不同BOOL
to an NSArray
。你需要包裹BOOL
.
Try:
objc_setAssociatedObject(self, animatingKey, [NSNumber numberWithBool:value], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
当然,您需要提取BOOL
值来自NSNumber
当您稍后获取关联对象时。
更新:使用现代 Objective-C 你可以这样做:
objc_setAssociatedObject(self, animatingKey, @(value), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)