【问题标题】:Saving AnyObject to NSUserdefaults [duplicate]将 AnyObject 保存到 NSUserdefaults [重复]
【发布时间】:2015-08-30 22:17:11
【问题描述】:

我目前正在开发一个 Swift 应用程序,该应用程序通过他们的 Mobile Buy SDK 与 Shopify API 进行交互。我在将购物车保存到设备时遇到问题。其他一切正常,但是当我使用以下代码将购物车保存到设备时:

  func saveCart() {
    NSUserDefaults.standardUserDefaults().setObject(cart, forKey: "cart")
    println("cart saved")
  }

我收到以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to insert non-property list object <BUYCart: 0x7fb5e30512f0> for key cart'

【问题讨论】:

  • NSCoding 不够; NSUserDefaults 只接受 plist 类型。

标签: ios objective-c swift shopify


【解决方案1】:

来自NSUserDefaults 类参考:

NSUserDefaults 类提供了方便的方法来访问浮点、双精度、整数、布尔值和 URL 等常见类型。默认对象必须是属性列表,即(或集合的实例组合)的实例:NSDataNSStringNSNumberNSDateNSArrayNSDictionary .如果要存储任何其他类型的对象,通常应该将其归档以创建NSData 的实例。更多详情,请参阅Preferences and Settings Programming Guide

希望这会有所帮助!

【讨论】:

  • 那我应该如何保存这个对象呢?
  • 同样的问题。你得到答案了吗。从两天开始就坚持了
  • 你好,我有同样的问题吗?你有什么解决办法吗?
猜你喜欢
  • 1970-01-01
  • 2012-06-13
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
相关资源
最近更新 更多