iOS 10のリリースでは、いくつかの問題が発生しているようです。主なものは、NSMutableDictionaryとNSMutableArrayの使用です。どちらも、もはやJSONの文字列を解析することができなくなり、代わりにプレiOS 10では期待どおりの値が設定されていました。私が見つけたこの周りの唯一の方法は、NSDictionaryとNSArrayをそれぞれ使用してから、initメソッドを使ってキャストし直すことです。例:iOS 10 NSMutableDictionaryとNSMutableArrayが以前と同じように動作しない
let json = "{ \"code\": \"abcde\", \"name\": \"JP Morgan\" }"
json as! NSMutableDictionary // gives nil
NSMutableDictionary(dictionary: json as! NSDictionary) // works :)
let json = "[{ \"code\": \"abcde\", \"name\": \"JP Morgan\" }]"
json as! NSMutableArray // gives nil
NSMutableArray(array: json as! NSArray) // works :)
私はその理由を知りたいですか?
そして、私は、これは、誰かが自分の問題を解決するのに役立ちます願っています...
ありがとうございます。私は他の誰かのコードで作業していますし、ObjCのものよりも "ネイティブ"タイプを使用することを知っていますが、それは実際の悪い考えであるとは知らなかった...あなたはSwift3には新しくないと言っています - どうすればiOS 10? (iOSは必ずしもSwift3を意味するわけではないが、それは問題が始まったときである) –
実際にはSwift 2で(最初のリリースSwiftでも)Swiftコレクションタイプを**変更可能な** Foundation対応アイテムにキャストすることはできません。 – vadian
NSMutablexxxのネイティブバージョンへの移行が安全であると思いますか? 「すべてを置換する」タイプのアプローチのように。明らかにここやそこにバグを修正しますが、一般的な機能はありますか? –