2014-11-25 1 views
1

다음은 문제를 일으키는 코드입니다. 오류가 발생한 부분을 주석 처리했습니다. 이 코드는 반환 된 데이터를 반복하고 NSSTring 유형의 빈 배열에 필드를 추가합니다.'NSString'유형의 인수로 'subscript'를 호출 할 수 없습니다.

var bb = ["842278359156695", "850445345006243"] 
     //Get user friends data from Parse 
     var query = PFUser.query() 
     query.selectKeys(["first_name", "last_name", "score", "rank"]) 
     query.whereKey("fbId", containedIn: bb) 

     query.findObjectsInBackgroundWithBlock { 
      (objects: [AnyObject]!, error: NSError!) -> Void in 
      var friendsArrays: [NSString] = [] 

      for var i = 0; i < objects.count; ++i { 
       friendsArrays.append(objects["first_name"] as NSString) // ERROR here 

      } 
      println(friendsArrays) 

     } 
    } 

그러나 이것은 발생하지 않으며이 메시지의 제목에 오류가 발생합니다 (표시 위치). "as NSString"을 제거하면 오류 메시지가 나타납니다. "제공된 인수를 받아들이는 'subscript'에 대한 오버로드를 찾을 수 없습니다."

신속하게 알려주십시오.

답변

1

아래 첨자를 적용하려는 객체는 배열 인 objects입니다. 내가 제안 그러나

for var i = 0; i < objects.count; ++i { 
    friendsArrays.append(objects[i]["first_name"] as NSString) // ERROR here  
           ^^^ 
} 

이를위한 각 루프

for object in objects { 
    friendsArrays.append(object["first_name"] as NSString) // ERROR here  
} 
에 그 변환 : 당신은 아마 i 번째 요소에서 그렇게 할
관련 문제