是init方法在swift中无法正常工作

时间:2014-07-04 20:06:48

标签: swift

使用下面的代码,尽管所有检查都相反(println显示存储的值),但本地歌曲变量永远不能被迭代。另一件事是Xcode调试器似乎在init方法中遍布各处。

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")
        }
    }
}

1 个答案:

答案 0 :(得分:0)

确定。我弄明白是什么。

我设置了Swift编译器 - 代码生成。优化级别 - 最快。这是为了防止字典的创建速度极慢。

但是,它似乎打破了迭代结构的能力。

它似乎也解决了断点的奇怪反弹。

这是大海捞针需要花费数小时的时间。我想这个故事的寓意是不要乱用编译器标志。