AnyObject让我感到紧张(无法找到类型的初始化程序......)

时间:2015-06-20 15:30:23

标签: ios swift

使默认索引= 0

    let defaults = NSUserDefaults.standardUserDefaults()

    if !(defaults.objectForKey("LastIndex") != nil)
    {
        defaults.setObject(Int(0), forKey: "LastIndex")
    }

然后尝试将此索引与随机数

进行比较
    var randomIndex: Int = 0
    let defaults = NSUserDefaults.standardUserDefaults()
    let lastIndex: Int = Int(defaults.objectForKey("LastIndex"))

    while randomIndex != lastIndex
    {
        randomIndex = Int(arc4random_uniform(UInt32(phrasesArray.count)))
    }

但收到错误enter image description here

2 个答案:

答案 0 :(得分:1)

我找到了解决方案 - 这么简单,我甚至不喜欢。

parent.user = {
   name: 'Baz',
   email: 'baz@vue.com'
};

答案 1 :(得分:0)

如果你想存储Int int NSUserDefaults,你可以直接这样做:

NSUserDefaults.standardUserDefaults().setInteger(YourIntValue, forKey: "LastIndex")

让我更正你的一些代码。首先看一下这段代码:

let defaults = NSUserDefaults.standardUserDefaults()

if !(defaults.objectForKey("LastIndex") != nil)
{
    defaults.setObject(Int(0), forKey: "LastIndex")
}

您在此处检查是否有值LastIndex可用,但您可以直接创建一个Int值,而不是尝试使用此代码直接从内存中读取Int

let abc = NSUserDefaults.standardUserDefaults().integerForKey("LastIndex")
println(abc)

使用此代码,如果密钥LastIndex没有值,则默认情况下它将设置为0,因此如果没有任何内容,它将始终打印0,因此您不需要检查它是否为nil

现在看看这段代码:

let lastIndex: Int = Int(defaults.objectForKey("LastIndex"))

在这里,您正在尝试将该关键字的值放在Int,但是如果按照我的建议执行此操作,您可以直接获得Int值,这样就可以让它变得简单:

let lastIndex = NSUserDefaults.standardUserDefaults().integerForKey("LastIndex")

这将始终返回Int,如果没有设置,则默认为0

您可以根据需要执行操作:

while randomIndex != lastIndex {
        randomIndex = Int(arc4random_uniform(UInt32(phrasesArray.count)))
}

希望它会对你有所帮助。