2016-08-15 2 views
1

, 나는 다음과 같은 변수로 모델 객체를 구축 한 다음 mainviewcontroller에서 왜 항목이 배열에 포함되지 않습니까? 엑스 코드 및 신속한 NSURLSession 내가 스위프트와 엑스 코드를 사용하고

var itemImageNames: [String]? 
var itemTitle: String? 
var itemDescription: String? 
var itemURL: String? 

, 나는 모델 유형의 변수를 만들었습니다. NSURLSession ... dataTaskWithURL ...을 시작하고 append를 사용하여 서버에서받은 itemImageNames를 추가합니다. 데이터가 유효한 것으로 되돌아 왔고, 구문 분석했습니다. 실제로 문자열로 돌아옵니다. 두 가지 해결책을 시도했습니다.

  1. 이미지에서 문자열 배열을 만들고 해당 배열을 self.item.itemImageNames로 설정 했습니까?

    do { 
         if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[String: AnyObject]] { 
    
          var imageURLs: [String] = [""] 
    
          for dictionary in json { 
           if let imageURL = dictionary["url"] as? String { 
            imageURLs.append(imageURL) 
            print(imageURL) 
           } 
          } 
    
          self.featuredItem.itemImageNames? = imageURLs 
    
  2. APPEND 문자열의 각 내가 그들에게 몇 가지 이유를 들어 (이미지)

    do { 
         if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[String: AnyObject]] { 
    
          for dictionary in json { 
           if let imageURL = dictionary["url"] as? String { 
            self.featuredItem.itemImageNames?.append(imageURL) 
            print(imageURL) 
           } 
          } 
    

을 self.item.itemImageNames를 사용하고 계십니까?으로 .Append 얻을로는 itemImageNames 모두를 사용하여, 전무 남아 구혼. 하나의 이미지 (예 : 첫 번째 이미지)를 사용하고 itemImageNames를 "문자열"로 변경하면 제대로 작동 할 것이라고 확신합니다.

또한 itemTitle, itemDescription 및 itemURL을 각각 self.item.itemTitle, self.item.itemDescription, self.item.itemURL로 설정하여 쉽게 업데이트 할 수 있습니다. 배열에 정보를 입력하는 방법에 대해 내가 빠뜨린 것이 있습니까?

+0

NSURLSession에서 itemImageNames 배열에 데이터를 추가하는 방법에 대한 예제 코드를 제공 할 수 있습니까? 도움이 될 것입니다. – Rich

+0

안녕하세요. 질문을 업데이트했습니다. 감사! –

+1

# 1에서 나는 그게 무엇인지 모르겠다. 마지막 줄에서 할 것입니다. 해당 물음표를 제거하면 작동합니까? # 2에서는 itemImageNames가 nil이 아님을 확인하십시오. 왜냐하면 nil 배열에 추가하는 것이 본질적으로 아무 것도하지 않기 때문입니다. – ghostatron

답변

1

접근법 # 2에서 추가하려고하기 전에 itemImageNames 배열을 초기화하십시오. nil 배열에 추가하려고하면 아무 일도 일어나지 않을 것입니다.

itemImageNames = [] 

for dictionary in json { 
    if let imageURL = dictionary["url"] as? String { 
     self.featuredItem.itemImageNames?.append(imageURL) 
     print(imageURL) 
    } 
}