创建NSArray - EXC_BAD_ACCESS?

时间:2012-11-14 01:59:41

标签: iphone ios nsarray out-of-memory

当我尝试创建NSArray purchasedTimeArray时,我遇到了崩溃EXC_BAD_ACCESS

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

是的,timeRemainingTitledescription仍然存在于内存中。他们都是NSStrings。

1 个答案:

答案 0 :(得分:12)

使用新的Objective-C语法:

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

两个好处:

  1. 写起来容易得多。
  2. 不需要nil终结符,如果其中一个值的值为nil,则所有对象仍然以数组结尾。
  3. 如评论中所述,@4语法转换为[NSNumber numberWithInt:4]