問題
この署名を使用してインターフェイスを作成したいが、自動合成されたインスタンス変数は使用しない:
@interface MyObject : NSObject
@property (nonatomic, copy) NSArray *values;
@end
質問:
独自のゲッターとセッターを実装したいので、インスタンス変数を使用しないため、インスタンス変数が.m @implementaionで自動合成されるのを防ぐことは可能ですか?
理由:
その理由は、データがプレーン バイト アーカイブに格納されるため、メモリ オーバーヘッドを持ちたくないからです。同時に、ユーザーに実装の問題を知られたくないし、インターフェイスの署名を変更しないでおいてほしい。
@implementation MyObject {
NSData *_data
{
- (NSArray *)values
{
// Generate NSArray from _data
}
- (void)setValues(NSArray *)values
{
// Set _data from values
}
#pragma mark - Hidden init
- (id)initWithData:(NSData *)data
{
// Set _data
}
@end