使用64容量创建了NSMutableArray。添加了一个NSString对象。但是,对象的字符串值为nil。
static NSString* cake = @"cake";
...
NSMutableArray* food = [NSMutableArray arrayWithCapacity:64];
[food addObject:[NSString stringWithString:cake]];
NSString* dessert = [[food objectAtIndex:0]stringValue];
// dessert is nil
如果[NSString stringWithString: cake]
仅替换为cake
,则会引发异常
这是一个完整的程序,它少于10行代码并且不起作用
#import <Foundation/Foundation.h>
static NSString* cake = @"cake";
int main(int argc, const char * argv[]){
@autoreleasepool {
NSMutableArray* food = [NSMutableArray arrayWithCapacity:64];
[food addObject:cake];
NSString* dessert = [[food objectAtIndex:0]stringValue];
}
}
它引发了异常。
答案 0 :(得分:1)
问题可能是您的阵列为零。这段代码有效。
NSMutableArray *foodArray = [NSMutableArray array];
[foodArray addObject:@"cake"];
NSString *dessert = foodArray[0]; //dessert is "cake"
更新
您收到的无法识别的选择器异常是在NSString上调用stringValue
的结果。正如@Chuck所说,NSString没有那种方法。