Ios NSClassFromString,字符串来自Plist

Ios NSClassFromString,字符串来自Plist,ios,objective-c,string,swift,plist,Ios,Objective C,String,Swift,Plist,我试图用一个字符串在Swift中实例化一个类,这听起来很奇怪,但类名来自Plist 我正在使用NSClassFromString,但它不适用于Plist字符串,我想我已经接近这个问题了: 但是我不能使用这个解决方案,因为我不知道可能来自Plist的类名 奇怪的行为是,如果我在代码中手动创建字符串,使用相同的值,那么它将按预期工作。。。这就像从Plist转换的字符串与新字符串不是完全相同的东西 这是密码 let className: String = definition["class"] as

我试图用一个字符串在Swift中实例化一个类,这听起来很奇怪,但类名来自Plist

我正在使用NSClassFromString,但它不适用于Plist字符串,我想我已经接近这个问题了:

但是我不能使用这个解决方案,因为我不知道可能来自Plist的类名

奇怪的行为是,如果我在代码中手动创建字符串,使用相同的值,那么它将按预期工作。。。这就像从Plist转换的字符串与新字符串不是完全相同的东西

这是密码

let className: String = definition["class"] as! String
let classNameManualy: String = "AppName.ServiceTest"
let aClass = NSClassFromString(className) as! NSObject.Type
let instanceObject = aClass()
它可以手动使用className,但不能使用className

然后我设置了一个断点,我发现了一个细微的差异

你有神奇的答案吗


谢谢大家!

您是否尝试过将
String
替换为
NSString
?手动构建
classname
而不是使用文本字符串怎么样?顺便问一下:在你的屏幕截图中,
classnamemandually
是如何变成
classnamemandualy
的?你说的是什么“细微差别”
countAndFlags
会有所不同,因为代码中有一个编译外皮字符串,它永远不会被释放,并且具有非常不同的计数。@JefferyThomas:是的,我试过了,是的,很抱歉问题中有一个输入错误,我会更新它。(在代码中没关系,我在发布之前反复检查过;)@zaph:我不太了解,我只是看到了这种差异,我把它提供给了你。但是如果这是正常的,那么为什么这两个字符串作为NSClassFromString的参数会有不同的结果呢?@Plopix你能发布你的
ServiceTest
类吗?