iOS Runtime 动态添加属性不能添加intrinsic类型

Posted Xiejunyi12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS Runtime 动态添加属性不能添加intrinsic类型相关的知识,希望对你有一定的参考价值。

- (void)setIsThreeDimensionalMap:(BOOL)isThreeDimensionalMap
    objc_setAssociatedObject(self, @"isThreeDimensionalMap", isThreeDimensionalMap, OBJC_ASSOCIATION_COPY_NONATOMIC);

报错:
- Implicit conversion of ‘BOOL’ (aka ‘bool’) to ‘id’ is disallowed with ARC

就是不能动态添加本身的类型,只能添加对象

于是我把对象包装到NSNumber中去

[NSNumber numberWithBool:YES]; 

添加一个NSNumber 对象…

- (void)setIsThreeDimensionalMap:(NSNumber *)isThreeDimensionalMap
    objc_setAssociatedObject(self, @"isThreeDimensionalMap", isThreeDimensionalMap, OBJC_ASSOCIATION_COPY_NONATOMIC);

就不报错了!

以上是关于iOS Runtime 动态添加属性不能添加intrinsic类型的主要内容,如果未能解决你的问题,请参考以下文章