2013-03-31 5 views
1

"title"값을 검색해야하는 다중 JSON 객체가 있습니다. 나는 각각의 "제목"값을 가져 오는 데 성공하지만,이 제목 값을 모두 NSMutableArray에 어떻게 넣을 수 있는지 잘 모르겠습니다. UITableView을 나중에 채울 수 있습니다.Xcode에서 검색된 JSON 값의 배열을 만드는 방법

현재 storyTitle (NSString)은 여러 개의 다른 문자열을 반환하지만 모두 별도입니다. 예를 들어, 콘솔은 다음을 반환합니다.

2013-03-30 21:39:30.416 Appv0.1[32742:11303] (
    "Boys\U2019 lacrosse display drive at Watsonville Jamboree" 
) 

2013-03-30 21:39:31.799 Appv0.1[32742:11303] (
    "Volleyball teams currently undefeated midway through season" 
) 

2013-03-30 21:39:32.093 Appv0.1[32742:11303] (
    "Wrestling season ends with a CCS victory and 2 state berths" 
) 

이러한 문자열을 배열에 결합하는 방법은 무엇입니까? 미리 감사드립니다! 어떤 도움을 주시면 감사하겠습니다.

NSDictionary *res = [NSJSONSerialization JSONObjectWithData: returnData options:NSJSONReadingMutableLeaves error:&myError]; 

storyList = [NSMutableArray alloc]; 

storyTitle = [res objectForKey:@"title"]; 

//create array of storyTitles 
NSString * story1 = [NSString stringWithFormat:@"%@", storyTitle]; 
//not sure how to do this array part 
storyList = [NSMutableArray arrayWithObjects:story1,nil]; 

편집 : 내가 할 경우

 for(int i = 0; i < 5; i++){ 
      storyTitle = [res objectForKey:@"title"]; 
      NSString * story1 = [NSString stringWithFormat:@"%@", storyTitle]; 
      [self.storyList addObject:story1]; 
     } 

콘솔

array: (
"Boys\U2019 lacrosse display drive at Watsonville Jamboree", 
"Boys\U2019 lacrosse display drive at Watsonville Jamboree", 
"Boys\U2019 lacrosse display drive at Watsonville Jamboree", 
"Boys\U2019 lacrosse display drive at Watsonville Jamboree", 
"Boys\U2019 lacrosse display drive at Watsonville Jamboree",) 

가 어떻게 배열이 3 개 별도의 이야기를 만들 수 있죠 반환?

+0

광기가 계속해서 똑같은 일을 반복하고 있으며 다른 결과를 기대하고 있다는 말이 있습니다. 루프를 할 때'storyTitle'을 위해 무엇을 선택 할지를 바꾸기 위해 어디에서나'i'를 사용하지 않습니다 (루프 반복마다 변경되는 것도 없습니다). –

답변

0

기본적으로 배열에 문자열을 추가 하시겠습니까?

sapi가 지적한대로 storyList은 재사용하려는 경우 속성이어야합니다. 코드에서 어딘가에

self.storyList = [[NSMutableArray alloc]init]; 

그런 다음 init 메소드에서 다음

@property(nonatomic, strong)NSMutableArray *storyList; 

당신은 또한 고해상도 사전의 요소를 반복 할 필요가

storyTitle = [res objectForKey:@"title"]; 
[self.storyList addObject:storyTitle]; 
+1

여러개의 결과가 기대된다면 아마도 'storyList' 배열을 속성으로 생성하고 싶을 것입니다. 각각의 객체가 디코딩 된 후에'UITableView'에서'reloadData'를 호출 할 수 있습니다. 한 번 끝나면, 모든 것을 가지고 있다는 것을 알게됩니다. – sapi

+0

참. 나는 대답을 업데이트 할 것이다. – yeesterbunny

+0

기본적으로 배열에 문자열을 추가하려고하지만 addObject : storyTitle을 사용하면 storyList는 모든 storyTitle이 아닌 하나의 storyTitle 만 반환합니다. – Spenciefy

0

이 (각 하나를 얻을 수) :

NSMutableArray * storyList = [[NSMutableArray alloc] init]; 
    for (id item in res) { 
     [storyList addObject:[item[@"title"]]]; 
    } 

참고 : 'item [@ "title"]'은 '[itemObjectForKey : @ "title"]'에 대한 새로운 ObjC 구문입니다.

관련 문제