2016-04-19 8 views
1

オブジェクトの配列を返すJSONを読み込んでいます。私は自分のオブジェクトAFTPartyにJSONレスポンスをバインドしたいと私は、このコンパイルエラーとよ:タイプ '_?'の値を変換できません。 [AFTParty]と入力してください強制的に - Swift

Cannot convert value of type '_?' to type '[AFTParty]?'

AFTPartyは、復号可能なプロトコルに準拠し、私は仕事をするHimotokiを使用していたクラスです。

マイJSON:エラーを与えている

[ 
{ 
id: 1, 
partyName: "x", 
partyAuthor: [ 
{ 
id: 1, 
username: "mtfons", 
name: "marco", 
lastname: "fonseca", 
phoneNumber: "91859158", 
email: "[email protected]" 
} 
], 
partyDescription: null, 
partyStyle: null, 
partyPermission: "PUBLICA", 
partyLocation: { 
id: 1, 
latitude: "1248174", 
longitude: "1428149" 
}, 
prices: [ ], 
partyDetailToJoin: "x", 
partyDateBegin: null, 
partyDateEnd: null, 
partyImagesPath: [ ], 
partyParticipants: [ 
{ 
id: 1, 
username: "x", 
name: "x", 
lastname: "x", 
phoneNumber: "x", 
email: "[email protected]" 
}, 
{ 
id: 2, 
username: "x", 
name: "ajfk", 
lastname: "jfa", 
phoneNumber: "x", 
email: "[email protected]" 
} 
], 
time: null, 
partyType: null 
} 
] 

コード:

 let partyDeserializer = AFTPartyDeserializerImplementation(network: network) 
      describe("Response") { 
       it("returns party if the network works correctly.") { 
        var response = [AFTParty]() 
        partyDeserializer.getParty().on(next: { response = $0 }).start() 

       } 
    } 


     public func getParty() -> SignalProducer<AFTParty, AFTNetworkError> { 
      let url = AFTRouter.Parties.URL 
      return network.requestJSON(url, parameters: nil) 
       .attemptMap { json in 
        if let response = (try? decodeValue(json)) as [AFTParty]? { 
         return Result(value: response) 
        } 
        else { 
         return Result(error: .IncorrectDataReturned) 
        } 
      } 
     } 

あなたの助けのおかげで、私は私の悪い英語のためにごめんなさい。

+0

問題は「as」キャストになる可能性があると思います。それはおそらく 'であろうか? 'でしょう。 – Sulthan

答えて

0

あなたは

public func getParty() -> SignalProducer<[AFTParty], AFTNetworkError> { 

を意味しましたか?

0

decodeValue(json)AnyObjectを返す場合は、as?ではなく、asを使用してキャストします。

関連する問題