SIGABRT由数组引起

时间:2011-11-15 04:26:38

标签: objective-c arrays memory

当我点击nextIdea()的按钮时,我收到一个突出显示int retVal = UIApplicationMain(argc, argv, nil, nil)并说SIGABRT的错误

- (IBAction)nextIdea:(id)sender
{
int index = arc4random() % ideaArray.count;
ideaTextView.text = [NSString stringWithFormat:@"%@",[ideaArray objectAtIndex:index]];
}

- (void)viewDidLoad
{
[super viewDidLoad];

PFQuery *query = [PFQuery queryWithClassName:@"Ideas"];
[query whereKey:@"Hidden" equalTo:@"entry"];
[query getObjectWithId:@"Idea"];
ideaArray = [[[NSArray alloc] init] autorelease];
//  ideaArray = [query findObjects];
ideaArray = [NSArray arrayWithObjects:@"one", @"two", nil];
}

我一直试图解决这个问题几个小时但没有运气。

ideaArray在标题中声明并合成btw

确切的错误消息:

[15842:f803] application:didFailToRegisterForRemoteNotificationsWithError: Error Domain=NSCocoaErrorDomain Code=3010 "remote notifications are not supported in the simulator" UserInfo=0x6a5e500 {NSLocalizedDescription=remote notifications are not supported in the simulator}

在设备上时,错误显示为:

Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x19f4f0 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

2 个答案:

答案 0 :(得分:0)

除非您将ideaArray存储为类变量,否则您将无法通过nextIdea:方法访问它。

  1. ideaArray成为property班级。
  2. 分配数组时,请使用self.ideaArray = [NSArray arrayWithObjects:@"one", @"two", nil];表示法。 self将引用您创建的属性。
  3. 使用nextIdea:
  4. self.ideaArray方法访问数组

答案 1 :(得分:0)

该属性设置为(非原子,分配),只是更改了分配给复制,并且它可以正常工作