[__NSCFString objectAtIndex:]:无法识别的选择器发送到实例错误
Posted
技术标签:
【中文标题】[__NSCFString objectAtIndex:]:无法识别的选择器发送到实例错误【英文标题】:[__NSCFString objectAtIndex:]: unrecognized selector sent to instance Error 【发布时间】:2012-12-21 02:38:59 【问题描述】:我尝试使用 Arraycontroller 将存储桶的内容加载到 NSTableView 中。我以这个错误结束了uo:
-[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x1006da970
这是我用来检查的代码。
- (IBAction)checkCloud:(id)sender
AmazonS3Client *s3 = [AmazonClientManager s3];
S3ListObjectsRequest* listObjectsRequest = [[S3ListObjectsRequest alloc] initWithName:@"hello-testing"];
NSMutableArray *fileListCloud = [[NSMutableArray alloc] init];
NSMutableArray *fileModifiedList = [[NSMutableArray alloc] init];
@try
S3ListObjectsResponse* response = [s3 listObjects:listObjectsRequest];
NSMutableArray* objectSummaries = response.listObjectsResult.objectSummaries;
for ( S3ObjectSummary* objSummary in objectSummaries )
[fileListCloud addObject:[objSummary key]];
[fileModifiedList addObject:[objSummary lastModified]];
@catch (NSException *exception)
NSLog(@"Cannot list S3 %@",exception);
[self loadFileListTable:fileListCloud andFileModificationDate:fileModifiedList];
-(void)loadFileListTable:(NSMutableArray *)fileListArray andFileModificationDate:(NSMutableArray *)modifiedArray
NSRange range = NSMakeRange(0, [[_fileListAC arrangedObjects] count]);
[_fileListAC removeObjectsAtArrangedObjectIndexes:[NSIndexSet indexSetWithIndexesInRange:range]];
for(int i = 0 ; i<[fileListArray count];i++)
[_fileListAC addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[[fileListArray objectAtIndex:i] objectAtIndex:0],@"Files",[[modifiedArray objectAtIndex:i] objectAtIndex:1],@"Date Modified", nil]];
数组加载了文件名,但是当我将它添加到数组控制器时,它会引发上述错误。任何帮助都会非常棒。
【问题讨论】:
[_fileListAC addObject:...
行如果你将它分解成多个语句会更容易阅读和调试。您认为是数组的对象之一可能实际上是字符串。
【参考方案1】:
这里
[[fileListArray objectAtIndex:i] objectAtIndex:0]
[[modifiedArray objectAtIndex:i] objectAtIndex:1]
[fileListArray objectAtIndex:i]
和 [modifiedArray objectAtIndex:i]
不是 NSArray(我认为它们都是 NSString)。
您只需要删除错误的objectAtIndex:0
和objectAtIndex:1
消息。
【讨论】:
【参考方案2】:在此处更改
[_fileListAC addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[fileListArray objectAtIndex:i],@"Files",[modifiedArray objectAtIndex:i], @"Date Modified", nil]];
【讨论】:
以上是关于[__NSCFString objectAtIndex:]:无法识别的选择器发送到实例错误的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 无法将“__NSCFString”类型的值转换为“NSDictionary”
__NSCFString objectForKeyedSubscript: 异常
如何解决 [__NSCFString _isResizable] 的运行时错误:无法识别的选择器发送到实例?
集合 <__NSCFString:> 在被枚举崩溃时发生了变异