- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 swift 的新手,我正在尝试创建一个警报,但出现错误。我可以像下面的代码一样使用 NSUserDefaults 吗?我该如何解决这个错误?
我得到的错误是:
Could not cast value of type 'NSTaggedPointerString' to 'NSArray'
并出现在这一行:
let alarms = defaults.objectForKey("Alarms") as! [String]
我的整个类(class):
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
来获取对象。问题可能出在您设置数据的位置。
as! [String]
在函数 getAllTimes
中执行强制转换,它将您获得的任何对象转换为 String
数组。如果无法转换该对象(因为您插入了不同的类型),这将失败。
也就是说,如果您将字符串数组保存到 NSUserdefaults
,这将成功。
为了确保您应该显示保存到 NSUserDefaults 的代码。
关于ios - 获取错误无法将类型 'NSTaggedPointerString' 的值转换为 'NSArray',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37158137/
我正在尝试调试我的程序,我有一个字典,我试图在调试器中检查它;但是,当我在调试器中查看字典时,它看起来像这样: 大多数键被列为NSTaggedPointerString我看不到值(value)。为什么
我正在开发一个用 swift 3.0 编写的项目。我的要求是保存我在某些文本字段中输入的数据并将这些属性之一填充到 TableView 中,选择一行后我想更新该记录(在我的文本字段上重新分配值)。 但
我有一个从 ListView 获取的 NSTaggedPointerString 对象数组,我需要对其进行一些验证。具体来说,我需要确定 testArray[i].includes('J'); 中包含
这个问题在这里已经有了答案: convert NSTaggedPointerString to NSString (5 个答案) 关闭 6 年前。 这是一个Get网络请求,更多信息请看这张图。 我想
我有一个 NSDictionary,其键类型为 String,值类型为 AnyObject。 调试时,其中一个值的类型为 NSTaggedPointerString。 尝试将 AnyObject 转换
我是 swift 的新手,我正在尝试创建一个警报,但出现错误。我可以像下面的代码一样使用 NSUserDefaults 吗?我该如何解决这个错误? 我得到的错误是: Could not cast va
我在 didSelectPost 的共享扩展中有以下代码: let sharedDefaults = NSUserDefaults(suiteName: "group.appliaison.Actio
我正在尝试为我的结构分配 Firebase 值:var productsArray = [Product]() 但是我有一个小错误: Could not cast value of type 'NST
这个问题在这里已经有了答案: Convert a string into an int (11 个答案) 关闭 6 年前。 实际上我已经使用这段代码将 NstaggedpointerString 转
我有一个像这样的 Swift 结构。 struct Usage { var totalData: Double var remainingTotalData: Double i
当我尝试从 JSON 结果中获取结果时。它抛出以下异常。 Terminating app due to uncaught exception 'NSInvalidArgumentException',
我调用了百度接口(interface)查询id Number,但是返回的Sex值是sex = M,JSON中M两边没有"",当我在模块中使用 NSString 来存储它,然后打印这个 sex 属性的类
我是使用 Objective-c 进行 iOS 编程的初学者。我现在正在处理我的项目,并在 View Controller 中发现了这个奇怪的错误。 2015-11-16 20:17:10.631 W
当我尝试访问数组时,最终出现此异常,但是当我在其中添加断点并尝试在调试器日志中打印时,数组似乎具有值并且似乎没有错误 oldDevices.forEach { (oldDevice) in
我的应用程序中的每个 UITextfield 都有问题。每当 UITextfield 的实例成为第一响应者时,我的应用程序就会崩溃并显示以下错误消息。 有关应用程序的一些详细信息: 多语言支持 使用
当在 Firebase 中监听一个新对象时,我得到这个错误:无法将 NSTaggedPointerString 类型的值转换为 NSDictionary。以下是监听已注册用户的代码。 FIRAuth.
我正在尝试在我的代码中创建一个循环,如下所示: for row in rows! { print("Row",row) let pin = Pin.init(latit
在以下 json 上执行 NSJSONSerialization 有时会给我 NSCFString* ,有时会给我 NSTaggedPointerString* 字符串值。有谁知道为什么会这样以及 N
首先,我英语说得不好,所以我用了谷歌翻译。 原来这个问题只出现在ios13。这似乎是网络区域某处的问题,但我无法解决问题。帮助。谢谢你。 Fatal Exception: NSInvalidArgum
我实现了一些公共(public)函数,可以让我的程序更加简洁。但我的模拟器上有问题,但在设备上却很好。我 100% 确定我存储在 UserDefaults 中的 uid 是 NSNumber。但为什么
我是一名优秀的程序员,十分优秀!