4

そのため、ユーザーの入力に応じて、大量のデータまたはごくわずかなデータを含む可能性のあるカスタムオブジェクトが多数あります。少しだけ必要な場合は、明らかに大量のデータ用のストレージを作成したくありません。だから私は初期化について聞いた、そしてそれはまさに私が望むもののように聞こえる。私はそれを機能させることができません。これが私の試みの1つの例です:

@synthesize name;

...

- (NSString *)name {
    if (!name) name = [[NSString alloc] init];
    return name;
}

そしてどこか他の場所

myObject.name = localName;

初期化子にIallocinitmyObjectの名前がある場合、これは正常に機能します。ただし、上記の遅延初期化を試みると、オブジェクトの名前はnil設定しようとした後になります。私は何が間違っているのですか?

4

1 に答える 1

3
@property (strong) NSString *name;

@synthesize name = _name;

- (NSString *)name {
    if (!_name) {
        _name = [[NSString alloc] init];
        ...
    }
    return _name;
}
于 2012-07-09T00:50:14.253 に答える