クラスのインスタンスごとに1回だけ初期化されるNSArrayなどのプロパティがある場合、これに何か問題がありますか。
(インターフェース内)
@property(strong, nonatomic)NSArray *bubbleArr;
(実装中)
-(NSArray*)bubbleArr
{
if(!bubbleArr)
{
NSMutableArray *tempBubbArr = [[NSMutableArray alloc] init];
// get filepath for first speech bubble image for page
NSString *speechBubbleImgPath = [[NSBundle mainBundle] pathForResource:
[NSString stringWithFormat:@"speech_%i_0", pageIndex]
ofType:@"png"];
for(int i = 1; speechBubbleImgPath; i++)
{
UIImage *speechBubbleImg = [[UIImage alloc] initWithContentsOfFile:speechBubbleImgPath];
UIImageView *speechBubbleImgView = [[UIImageView alloc] initWithImage:speechBubbleImg];
[tempBubbArr addObject:speechBubbleImgView];
speechBubbleImg = nil;
speechBubbleImgView = nil;
speechBubbleImgPath = nil;
speechBubbleImgPath = [[NSBundle mainBundle] pathForResource:
[NSString stringWithFormat:@"speech_%i_%i", pageIndex, i]
ofType:@"png"];
}
bubbleArr = [[NSArray alloc] initWithArray:tempBubbArr];
tempBubbArr = nil;
}
return bubbleArr;
}
カスタムアクセサメソッドを使用したことはありませんが、これは設定するためのクリーンな方法のように思われるため、自分viewDidLoad
や他の場所で各プロパティを設定する必要はなく、それがであるかどうかを心配する必要もありませんnil
。これを行うコードに実際に出くわしたことはありません。これはそれを行うための推奨される方法ですか?また、私は常にself.bubbleArr
このメソッドが呼び出されることを確認するために使用したいと思いますよね?