NSArrayM objectAtIndex:]:检查NSPasteboard时,索引0超出空数组的边界

时间:2013-07-28 05:29:59

标签: objective-c macos cocoa

当我进行检查验证以确保copiedItems数组有其中的内容时,我收到错误:NSArrayM objectAtIndex:]:索引0超出空数组的边界

NSArray *classes = [[NSArray alloc] initWithObjects:[NSString class], nil]; NSDictionary *options = [NSDictionary dictionary];
NSArray *copiedItems = [pasteboard readObjectsForClasses:classes options:options];
 if ([copiedItems objectAtIndex:0]!= nil){
        NSString *copiedString = [copiedItems objectAtIndex:0];

1 个答案:

答案 0 :(得分:1)

原来我的检查导致了错误。通过调用[copiedItems objectAtIndex:0],我正在访问该数组,而不是首先看它是否有效(我的初衷)。将[copiedItems objectAtIndex:0]更改为if ([copiedItems count]> 0) 在我可以验证之前,我无法访问copiedItems。

来自@ H2CO3的良好扩展:[array objectAtIndex:index] != nil没有意义 - NSArrays不能包含nil