0

我正在尝试调试与 NSArray 相关的问题。我遇到了一个例外:

EXC_BAD_ACCESS(code=EXC_1386_GPFLT) 在这一行:

NSArray *items = [[NSArray alloc] initWithObjects:@"A", "B", "C", nil];

此代码位于 NSView 内的 -(id)initWithFrame:(NSRect)frame 内。

是什么导致我得到这个异常?我用谷歌搜索了这个例外,但没有找到其他人得到它。

该项目适用于 OS X 而不是 iOS。

4

1 回答 1

5

您传递给的第一个参数initWithObjects:是一个对象(它是 的一个实例NSString),但接下来的两个不是。将非对象类型插入到 Objective-C 集合中是非法的。

您需要为所有字符串文字加上@符号前缀,以使它们成为对象,如下所示:

NSArray *items = [[NSArray alloc] initWithObjects:@"A", @"B", @"C", nil];
于 2013-10-13T21:54:36.920 回答