创建NSArray时出现异常

foo*_*512 0 macos cocoa exc-bad-access objective-c

我正在尝试调试与NSArray相关的问题.我得到一个例外:

EXC_BAD_ACCESS(代码= EXC_1386_GPFLT)在此行:

NSArray *items = [[NSArray alloc] initWithObjects:@"A", "B", "C", nil];
Run Code Online (Sandbox Code Playgroud)

这段代码在NSView内部 - (id)initWithFrame:(NSRect)框架内.

是什么导致我得到这个例外?我是Google-d的例外,我还没有找到其他人获得它.

此项目适用于OS X而非iOS.

jle*_*ehr 5

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

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

NSArray *items = [[NSArray alloc] initWithObjects:@"A", @"B", @"C", nil];
Run Code Online (Sandbox Code Playgroud)