3

を作成しようとするとNSArray purchasedTimeArray、クラッシュしますEXC_BAD_ACCESS

NSString *blank = @"";
NSArray *purchasedTimeArray = [[NSArray alloc] initWithObjects:
                                   timeRemainingTitle, blank, @"imagename.png", blank, description, 4, nil];

そしてはい、timeRemainingTitleそしてdescriptionまだ記憶に残っています。どちらも NSString です。

4

1 に答える 1

13

新しい Objective-C 構文を使用します。

NSArray *purchasedTimeArray = @[ timeRemainingTitle, blank, @"imagename.png", blank, description, @4 ];

2 つの利点:

  1. はるかに簡単に書くことができます。
  2. nilターミネータは必要ありません。他の値のいずれかnilが値にある場合でも、すべてのオブジェクトが配列に残ります。

コメントに記載されているように、@4構文は に変換され[NSNumber numberWithInt:4]ます。

于 2012-11-14T02:11:27.643 に答える