如何将 NSManagedObject 传递给 UILocalNotification 的 userInfo

Posted

技术标签:

【中文标题】如何将 NSManagedObject 传递给 UILocalNotification 的 userInfo【英文标题】:How to pass NSManagedObject to userInfo of UILocalNotification 【发布时间】:2015-07-08 10:50:16 【问题描述】:

我正在尝试将 NSManagedObject 传递给 UILocalNotification 的 userInfo,类似于:

NSManagedObject *obj = ...;

UILocalNotification* localNotification = [[[UILocalNotification alloc] init] autorelease];
localNotification.userInfo = [NSDictionary dictionaryWithObjectsAndKeys:obj, @"KeyName", nil];

但它因以下错误而崩溃

属性列表格式无效:200(属性列表不能包含“CFType”类型的对象) *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法序列化 userInfo:(null)”

据我了解,根本原因是 NSManagedObject 不可序列化,那么如何解决这个问题?这里有什么解决方法吗?

我也尝试过 NSManagedObjectID,在这里也遇到了同样的错误。

【问题讨论】:

请在此处显示......***.com/questions/4637179/uilocalnotification-crash 谢谢@Rohitsuvagiya,我知道根本原因,我想在这里询问解决方案。 【参考方案1】:

试试这个 Matt Gallagher 有一篇很棒的博文:http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html

并尝试:Error when setting UserInfo in UILocalNotification

【讨论】:

以上是关于如何将 NSManagedObject 传递给 UILocalNotification 的 userInfo的主要内容,如果未能解决你的问题,请参考以下文章

将 NSManagedObject 传递给 UIViewController

将 NSManagedObject 传递给子上下文不起作用

restkit 0.20:无法将 NSManagedObject 传递给 getObject: 方法

NSManagedObject 传递给 ViewController 是不是反映所有更新

将对 NSManagedObject 的属性的引用传递给后台线程

通过@State 传递 NSManagedObject ...? SwiftUI