1. 程式人生 > >iOS Runtime 動態新增屬性不能新增intrinsic型別

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);
}

就不報錯了!