2014-09-15 4 views
0

내 데이터베이스에서 내 프로그램으로 문자열을 다운로드하려고합니다. 나는 내가 배열에서 문자열을 가져 와서 NSString에 저장하려고 할 때를 제외한 모든 것이 잘되고 있다고 생각한다. 내 중단 점의 스크린 샷을 업로드했습니다. NSString *test=[[items objectAtIndex:i]objectForKey:@"vid"]; 줄 뒤에 [BHarDetails objectForKey :] : 인식 할 수없는 선택기가 인스턴스 0xcd66680 '으로 전송되는 오류가 발생합니다. 왜 그런지 모르겠습니다. BHarDetails는 vid를 NSString으로 정의하는 NSObject 일뿐입니다. 나 또한 또 다른 NSObject 파일을 어디 변수 VID에 배열을 데이터베이스 필드를 할당하고 배열이 반환됩니다, 나는 확실히 exacctly 왜이 오류가 발생하는지 모르겠습니다. 이 오류를 해결하고 vid 변수 및 항목 배열에서 내 링크를 문자열로 가져 오는 데 도움이되는 도움을 주시면 감사하겠습니다. 내 배열에서 문자열을 가져 오는 중 오류가 발생했습니다.

- (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

답변

3

당신은 그 배열에있는 NSDictionary 객체를 저장하지 않는, 당신은 "BHarDetails"개체를 저장하고 당신이

-(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]; 
} 

2 개체 감사드립니다.

그래서 같은 충돌이 발생하여 " BHarDetails"객체에 " objectForKey"호출을하려고 " BharDetails는"(지금까지 내가 말할 수있는)있는 NSDictionary의 서브 클래스가 아닙니다. 당신이 일을해야 무엇

이 같은 것입니다 :

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

빠른 응답, 그것을 고정. 하나. 이 코드를 사용하여 문자열 값을 얻을 수 있었던 경우가 있습니다. 그리고 나는 그들이 꽤 배열되어 있다고 확신한다. 예 (int i = 0; i <[JSONarray count]; i ++) { NSNumber * 위도 = [[JSONarray objectAtIndex : i] objectForKey : @ "latitude"]; 이 경우에는 NSDictionary 객체를 배열에 추가했기 때문에 –

+1

을 사용할 수 있습니다. –

+0

NSData * data = [str dataUsingEncoding : NSUTF8StringEncoding]; NSError * e = nil; NSArray * JSONarray = [NSJSONSerialization JSONObjectWithData : 데이터 옵션 : NSJSONReadingMutableContainers 오류 : &e]; –

관련 문제