I am using an associated reference as storage for a property of my category
header file contains :
@interface UIImageView (Spinning)
@property (nonatomic, assign) BOOL animating;
@end
implementation is
- (void)setAnimating:(BOOL)value {
objc_setAssociatedObject(self, animatingKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
However, I am getting the warning for the line above
Implicit conversion of 'BOOL' (aka 'signed char') to 'id' is disallowed with ARC
if you know what I am doing wrong here, please help how to avoid this problematic
The
objc_setAssociatedObject
function expects an Objective-C object for the 3rd parameter. But you are trying to pass in a non-objectBOOL
value.This is no different than trying to add a
BOOL
to anNSArray
. You need to wrap theBOOL
.Try:
Of course you will need to extract the
BOOL
value from theNSNumber
when you get the associated object later.Update: Using modern Objective-C you can do:
objc_setAssociatedObject accepts id type of value as third parameter and you are trying to pass BOOL to it. So make conversion as needed.