【发布时间】:2014-09-23 05:46:34
【问题描述】:
是否可以将 NSObject 转换为 Int?我该如何实现呢? 我查看了 Apple 参考指南,但我似乎无法理解如何在 NSObject 参考下使用 intValue。
var intValue: Int32 { get }
我从另一个类接收到一个 NSObject,它保存了 HighestScore。我想将此最高分数与当前分数进行比较,如果当前分数大于最高分数,则发送要保存的当前分数。除了我无法将 NSObject(最高分)与我的 Int(当前分数)进行比较之外,我已经拥有了所有这些
这是我检索最高分数的方法:
func RetriveHighScore() -> NSObject {
var dataToRetrive = HighScore()
documentDirectories = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
documentDirectory = documentDirectories.objectAtIndex(0) as String
path = documentDirectory.stringByAppendingPathComponent("highScore.archive")
if let dataToRetrive2 = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? HighScore {
dataToRetrive = dataToRetrive2
}
return(dataToRetrive)
}
这是我在另一个类中调用 SaveHighScore 类和 RetrieveHighScore 函数的方式:
var bestScore = SaveHighScore.RetriveHighScore
如何将 Int 值与作为 NSObject 的 bestScore 变量进行比较
感谢您的帮助
【问题讨论】:
-
目前尚不清楚您实际想要达到的目标。也许如果您通过将 NSObject 转换为 Int 来提供您尝试解决的问题的一些细节,它会更清楚。
-
我刚刚添加了更多信息,希望你能指导我做什么
-
retrieveHighScore 有返回一个NSObject吗?
-
那为什么你的方法没有返回 NSNumber 呢?
-
你不应该在这里使用
NSObject,你应该使用Int或NSNumber。更改您的高分课程以返回合理的类型。你是如何创建档案的?让编译器知道真正的类类型。
标签: swift nsnumber nsobject nsinteger