でスウィフト配列要素型と一致しなかった。また、プロジェクトのGitHubの内部バグとしてこの質問をした:https://github.com/evermeer/AlamofireJsonToObjects/issues/24AlamofireJson/EVReflectionは - NSArrayの要素が
フレームワークの使用:(REST用) Alamofire AlamofireJsonToObjects(にします (EVReflectionに依存します)
デシリアライズするオブジェクト内のオブジェクトの配列を取得しようとすると問題が発生します。出力はfatal error: NSArray element failed to match the Swift Array Element type
であり、EVReflection.swift mi = Mirror(reflecting: theValue)
の560行目でデバッガがエラー:Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
でブレークします。
ネストされたオブジェクトが配列に含まれていない場合、そのオブジェクトを逆シリアル化することができました。私は下にいくつかのコードを貼り付けて、私のプロセスを見ることができます。また、secondaryObjects
がからNULLのときMyPrimaryObject
が完全に解析されることに留意すべきである
public class MyPrimaryObject : EVObject{
public var myPrimaryObjectId : NSUUID?
public var name : String = ""
public var myObjectDescription: String?
public var numberOfOccurrences : Int = 0
public var positiveResponsePercentage : Float = 0
public var secondaryObjects : [MySecondaryObject]?
override public func propertyMapping() -> [(String?, String?)] {
return [("myObjectDescription","Description")]
}
}
public class MySecondaryObject : EVObject {
public var mySecondaryObjectId : Int = 0
public var dateRecorded : NSDate?
public var rating : Int = 0
public var userRemarks : String?
}
:私はdebugDescriptionに
Alamofire.request(.GET, "http://server.com/api/get/all", headers: getAuthenticationHeaders()).
validate().
responseArray { (response: Result<[MyPrimaryObject], NSError>) in
if(response.isSuccess){
print(response.debugDescription)
success(response.value)
}
if(response.isFailure){
let error : NSError = response.error!
NSLog("API failure: \(error.debugDescription)")
failure(error)
}
}
モデルを印刷することを要求したとき
Alamofire要求は、エラーが発生しましたAPIレスポンス
私は明らかに単純化しましたが、私は実際にコードをあなたと個人的に共有しています。どんな助けでも大歓迎です!本当にありがとう!