2015-06-20 46 views
0

制作默认指数= 0AnyObject让我很紧张(无法找到类型的初始化器...)

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

+0

你在哪一行得到这个错误? –

回答

1

我找到了解决办法 - 如此简单,我甚至LOL'ed。

let lastIndex: Int = defaults.integerForKey("LastIndex") 
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") 

这将始终返回诠释,如果没有什么设置,那么这将是0默认。

而且,只要你想,你可以执行你的行动:

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

希望它会帮助你。

相关问题