init方法在swift中是否工作不正常
使用下面的代码,尽管所有检查都相反,但本地songs变量永远无法迭代(println显示存储的值)。另一件事是,Xcode调试器似乎在init方法中到处跳跃init方法在swift中是否工作不正常,swift,Swift,使用下面的代码,尽管所有检查都相反,但本地songs变量永远无法迭代(println显示存储的值)。另一件事是,Xcode调试器似乎在init方法中到处跳跃 let gLibraryManager = LibraryManager() class LibraryManager { var Songs = Dictionary<String, String>() init() { println("struct being initialized from NSDefau
let gLibraryManager = LibraryManager()
class LibraryManager {
var Songs = Dictionary<String, String>()
init() {
println("struct being initialized from NSDefaults")
let userDefaults = NSUserDefaults.standardUserDefaults();
var result:AnyObject = userDefaults.objectForKey(LIKED_LIST)
println(result)
var local = result as? Dictionary<String,String>
if local != nil {
println("local not nil: \(local!)")
for (id,title) in local! {
Songs[id] = title
}
if Songs.count > 0 {
println("NSDefaults detected: \(Songs)")
} else {
println("no NSDefaults detected. Initializing empty")
}
}
}
让gLibraryManager=LibraryManager()
班级图书馆经理{
var Songs=字典()
init(){
println(“从NSDefaults初始化的结构”)
让userDefaults=NSUserDefaults.standardUserDefaults();
var结果:AnyObject=userDefaults.objectForKey(列表)
println(结果)
var local=结果为字典
如果本地!=零{
println(“本地非零:\(本地!)”)
对于(id,标题)在本地{
歌曲[id]=标题
}
如果Songs.count>0{
println(“检测到默认值:\(歌曲)”)
}否则{
println(“未检测到任何默认值。初始化为空”)
}
}
}
好的。我知道是什么了
我已经将Swift编译器代码生成。优化级别设置为-Fastest。这是为了防止字典创建速度极慢
然而,这似乎破坏了迭代结构的能力
它似乎也解决了断点的奇怪反弹问题
这是大海捞针,耗时数小时。我想这个故事的寓意是不要弄乱编译器标志。你得到的实际错误是什么?你说的
songs
变量不能迭代是什么意思?你是说for块从未执行过吗?你验证过用户默认值是否实际上是retu吗使用非空字典?向我们显示打印输出同样,您是否实际使用歌曲
和歌曲
作为两个不同的变量…从NSDefaults初始化的结构{3806754377931625544=wewhocanotbenamed;}local not nil:[3806754377931625544:wewhocanotbenamed]未检测到默认值。正在初始化empty@TommyFannon,第一条错误消息指示NSDEFAULT中没有任何内容