从我的数组中检索字符串时出错

时间:2014-09-15 05:20:18

标签: ios objective-c arrays

我正在努力将数据库中的字符串下载到我的程序中。我相信一切顺利,除了我试图从字符串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];
            }
}

enter image description here

1 个答案:

答案 0 :(得分:3)

您没有在该数组中保存NSDictionary对象,而是保存了一个“BHarDetails”对象。

因此,尝试对“objectForKey”对象执行“BHarDetails”调用,导致崩溃为“BharDetails”不是NSDictionary的子类(至于我可以告诉)。

你应该做的是这样的事情:

BHarDetails *bObject = [items objectAtIndex:i];
if(bObject)
{
    URL = [NSURL URLWithString:bObject.vid];
}