酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

iOSでカテゴリにプロパティを生やす

カテゴリにこんなプロパティを生やしたい。

@interface UIImageView ()

@property (strong,nonatomic) NSArray *currentAnimationImages;

@end

実装側では下記のように実装する。objc_getAssociatedObjectの第2引数はキーです。

キーは中身の内容ではなくてポインタの値となるため、stackoverflowではstatic NSString *MYSimulatedString = @"MYSimulatedString";を利用する形になっていました。

@implementation UIImageView (Animation)

-(NSString *)currentAnimationImages {
    return objc_getAssociatedObject(self, @selector(setCurrentAnimationImages:));
}
-(void)setCurrentAnimationImages:(NSArray *)images {
    objc_setAssociatedObject(self, _cmd, images, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end