我正在努力将数据库中的字符串下载到我的程序中。我相信一切顺利,除了我试图从字符串FROM数组并将其保存到NSString。我上传了断点的截图。在行NSString *test=[[items objectAtIndex:i]objectForKey:@"vid"];
之后我得到一个错误[BHarDetails objectForKey:]:无法识别的选择器发送到实例0xcd66680'。我不知道为什么会这样。 BHarDetails只是一个NSObject,我将vid定义为NSString。我还有另一个NSObject文件,我将数据库字段链接分配给变量vid并返回一个数组,Si我不确定为什么会发生此错误。非常感谢解决此错误并将我的链接从vid变量和items数组转换为字符串。
谢谢
-(void)itemsDownloaded:(NSArray *)items {
NSURL *URL;
for(int i=0;i<[items count];i++) {
NSString *test=[[items objectAtIndex:i]objectForKey:@"vid"];
URL=[NSURL URLWithString:test];
}
NSURLRequest *request=[NSURLRequest requestWithURL:URL];
[_webPlayer loadRequest:request];
}
第二个对象
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// Create an array to store the locations
NSMutableArray *_transfer = [[NSMutableArray alloc] init];
// Parse the JSON that came in
NSError *error;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:_downloadedData options:NSJSONReadingAllowFragments error:&error];
for (int i = 0; i < jsonArray.count; i++) {
NSDictionary *jsonElement = jsonArray[i];
BHarDetails *dbfield= [[BHarDetails alloc] init];
dbfield.vid = jsonElement[@"link"];
// Add this question to the transfer array
[_transfer addObject:dbfield];
}
if (self.delegate) {
[self.delegate itemsDownloaded:_transfer];
}
}
答案 0 :(得分:3)
您没有在该数组中保存NSDictionary对象,而是保存了一个“BHarDetails
”对象。
因此,尝试对“objectForKey
”对象执行“BHarDetails
”调用,导致崩溃为“BharDetails
”不是NSDictionary的子类(至于我可以告诉)。
你应该做的是这样的事情:
BHarDetails *bObject = [items objectAtIndex:i];
if(bObject)
{
URL = [NSURL URLWithString:bObject.vid];
}