2
私は迅速に新しいですが、私はアラームを作成しようとしていますが、エラーが発生します。 以下のコードのようにNSUserDefaultsを使用できますか?このエラーを解決するにはどうすればよいですか?エラーを取得しました 'NSTaggedPointerString'型の値を 'NSArray'にキャストできません
私が手にエラーがある:
Could not cast value of type 'NSTaggedPointerString' to 'NSArray'
と、この行で発生します。
let alarms = defaults.objectForKey("Alarms") as! [String]
私のクラス全体:
class Alarm {
// MARK: - Declare 2 fields just time and switch in alarm
var time: String = ""
var stateSwitch: Bool = false
// MARK: - Initalize
init(time: String , turnOn: Bool) {
self.time = time
self.stateSwitch = turnOn
}
class func getAllAlarm() -> [Alarm] {
var alarms = [Alarm]()
let times = getAllTimes()
let stateSwitchs = getAllSwitchs()
for i in 0...times.count {
let alarm = Alarm(time: times[i], turnOn: stateSwitchs[i])
alarms.append(alarm)
}
return alarms
}
private class func getAllTimes() -> [String]{
let defaults = NSUserDefaults.standardUserDefaults()
let alarms = defaults.objectForKey("Alarms") as! [String]
return alarms
}
private class func getAllSwitchs() -> [Bool]{
let defaults = NSUserDefaults.standardUserDefaults()
let stateSwitchs = defaults.objectForKey("Switchs") as! [Bool]
return stateSwitchs
}
}
「アラーム」キーでNSUserDefaultsに以前にStringオブジェクトを保存しているため、[String]として変換できないようです。 – Larme