错误代码?线程1:EXC_BAD_ACCESS(代码= EXC_i386_GPFLT)

时间:2015-03-06 15:21:33

标签: ios objective-c xcode

我是编程新手,我收到此错误

不确定该怎么做,但该应用程序挂起

屏幕截图:http://i.stack.imgur.com/rD5Ny.jpg

3 个答案:

答案 0 :(得分:1)

在“巧克力蛋糕”字符串之前,您错过了@。您不能将c字符串放入NSArray

答案 1 :(得分:0)

我想你错过了。你必须分配内存。

你的.h:

中的

@property (nonatomic, strong) NSArray * recipes;
你的.m

中的

- (void)viewDidLoad {
    [super viewDidLoad];

    self.reciepe =[[NSArray alloc] initWithObjects:@"test",@"test2",@"test3",nil];
}

不要忘记arry结束时的零。

这对我来说很好。

希望得到这个帮助。

答案 2 :(得分:0)

请使用代码标记而不是屏幕截图发布您的代码。引用你得到的整个错误,并指出它所在的行号。

Dan告诉你你的代码有什么问题(缺少" @"在你的一个参数上。)

确保查看编译程序时收到的所有警告。你几乎肯定得到一个警告,你传递了错误类型的参数。这些警告确实非常重要。当你收到警告时,停止一切并找出原因。

Apple添加了用于创建对象的新语法("对象文字"语法,它被称为。)

您可以更简单地编写代码:

recipes = @[@"test", @"test2", @"test3"];

效果与代码

完全相同
recipes = [NSArray arrayWithObjects: @"test", @"test2", @"test3", nil];

但新形式更容易打字,一旦习惯就更容易阅读。

官方(有点难以阅读的初学者)文档在Clang网站上:Objective-C Literals

This article from The Big Nerd Ranch site是对新语法的更具可读性的解释(它还包含指向Clang网站上同一页面的链接)

如果您使用Google搜索" Objective-C对象文字语法"你也可以找到一堆其他文章。