0
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上使用“native”类型,但是我不知道这是一个真正的坏主意......你说这对Swift3来说并不新鲜 - 它是如何工作的,直到iOS 10? (我知道iOS并不一定意味着Swift3,但那是当问题开始时) –
实际上在Swift 2中(即使在最初的发行版Swift 1中)也不可能将Swift集合类型转换为** mutable **基础对象。 – vadian
您认为将任何以NSMutablexxx为原始版本的内容安全吗?就像“全部替换”类型一样。显然修复一个错误,但一般功能? –