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 ];

两个好处:

  1. 写起来容易多了。
  2. 不需要nil终止符,并且如果其他值之一nil在值中,则所有对象仍会在数组中结束。

如评论中所述,@4语法转换为[NSNumber numberWithInt:4].

于 2012-11-14T02:11:27.643 回答