8

したがって、私が基本的に聞きたいのは、次のコードが安全かどうかです (動作するかどうかではありません)。つまり、パブリック ゲッターは [異なるタイプの] actionLog プロパティの合成されたゲッターをオーバーライドしますか?

.h ファイル:

@interface SomeClass : NSObject
- (NSArray*) actionLog;
@end

.m ファイル:

@interface SomeClass ()
@property (strong, nonatomic) NSMutableArray* actionLog;
@end

@implementation SomeClass
...
@end
4

2 に答える 2

1

次のように、変更可能な ivar を使用してプロパティをバックアップします。

.h ファイル:

@interface SomeClass : NSObject

@property (nonatomic, strong) NSArray *actionLog;

@end

.m ファイル:

@implementation SomeClass{
    NSMutableArray* _actionLog;
}

-(void)insertAction:(Action *)action{
    if(!_actionLog){
        _actionLog = [[NSMutableArray alloc] init];
    }
    [_actionLog addObject:action];
}

@end
于 2017-01-08T22:56:01.593 に答える