- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个自定义类 MyClass,它基本上由几个 NSMutableArrays 组成,没有其他变量。我有一个实体 MyEntity,它有一个属于 MyClass 的 ivar。当我尝试保存实体时,我得到了这个堆栈转储:
0 CoreFoundation 0x0118ebe9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x012e35c2 objc_exception_throw + 47
2 CoreFoundation 0x011906fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x01100366 ___forwarding___ + 966
4 CoreFoundation 0x010fff22 _CF_forwarding_prep_0 + 50
5 Foundation 0x00091bf6 _encodeObject + 1076
6 Foundation 0x0009d041 +[NSKeyedArchiver archivedDataWithRootObject:] + 206
7 CoreData 0x00eb7255 -[NSSQLiteConnection execute] + 2677
8 CoreData 0x00f0b646 -[NSSQLiteConnection insertRow:] + 262
9 CoreData 0x00f082d4 -[NSSQLConnection performAdapterOperations:] + 180
10 CoreData 0x00f07f7e -[NSSQLCore _performChangesWithAdapterOps:] + 494
11 CoreData 0x00f06a5a -[NSSQLCore performChanges] + 410
12 CoreData 0x00f004a8 -[NSSQLCore saveChanges:] + 216
13 CoreData 0x00ebe739 -[NSSQLCore executeRequest:withContext:error:] + 409
14 CoreData 0x00f6eb1b -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 3691
15 CoreData 0x00ef6db8 -[NSManagedObjectContext save:] + 712
16 MyProgram 0x00006d19 -[DataParser parser:didEndElement:namespaceURI:qualifiedName:] + 1665
17 Foundation 0x00104a19 _endElementNs + 453
18 libxml2.2.dylib 0x01620e63 xmlParseXMLDecl + 1346
19 libxml2.2.dylib 0x0162bb6d xmlParseChunk + 3984
20 Foundation 0x0010421a -[NSXMLParser parse] + 321
21 MyProgram 0x0000653e -[DataParser parseXMLFileAtURL:parseError:] + 176
22 MyProgram 0x00002912 -[MyProgramAppDelegate application:didFinishLaunchingWithOptions:] + 664
23 UIKit 0x002cc1fa -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
24 UIKit 0x002ce55e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
25 UIKit 0x002d8db2 -[UIApplication handleEvent:withNewEvent:] + 1533
26 UIKit 0x002d1202 -[UIApplication sendEvent:] + 71
27 UIKit 0x002d6732 _UIApplicationHandleEvent + 7576
28 GraphicsServices 0x01ac4a36 PurpleEventCallback + 1550
29 CoreFoundation 0x01170064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
30 CoreFoundation 0x010d06f7 __CFRunLoopDoSource1 + 215
31 CoreFoundation 0x010cd983 __CFRunLoopRun + 979
32 CoreFoundation 0x010cd240 CFRunLoopRunSpecific + 208
33 CoreFoundation 0x010cd161 CFRunLoopRunInMode + 97
34 UIKit 0x002cdfa8 -[UIApplication _run] + 636
35 UIKit 0x002da42e UIApplicationMain + 1160
36 MyProgram 0x000023e6 main + 84
37 MyProgram 0x00002389 start + 53
有没有人对可能导致这种情况的原因有任何建议?我相信它可能与 MyClass 有关,但我应该如何解决这个问题?我是不是忘了为它写点什么?
最佳答案
您是如何在您的实体中定义 myClass ivar 的?您可以使用 Transformable 属性来保存非标准类型。这个想法是 Core Data 在后台使用 NSValueTransformer 的实例来将属性与 NSData 的实例相互转换。
然后 Core Data 将数据实例存储到持久存储中。
默认使用 NSKeyedUnarchiverFromDataTransformerName,这意味着您的自定义类必须实现 NSCoding 协议(protocol)(支持键控归档)
查看 Core Data Programming Guide 中的“Non-Standard Persistent Attributes”,了解更多细节和另一种实现相同方法的描述。
关于ios - 核心数据错误 : -[myclass encodeWithCoder:]: unrecognized selector sent to instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007588/
您好,我在我的 ios 应用程序中使用 GoogleMaps,并且有一部分我必须在 CoreData 中保存 map 标记位置.我正在使用代码 GMSMarker *marker = [GMSMark
假设我有一个对象 Person。(我知道 Person 有语法错误。请忽略这些错误。) class Person: NSObject, NSCoding { var name : String
我有一个对象,其属性可能为 nil。我应该如何在 encodeWithCoder(和 decodeWithCoder)中实现它? - (void)encodeWithCoder:(NSCoder *)
我正在尝试使用 NSCoding 来保存和恢复应用程序状态。我以前没用过。 在我的应用程序中,协议(protocol)方法 encodeWithCoder 和 initWithCoder 从未被调用。
我第一次使用编码是为了将数据保存在我的应用程序之外。我一直在看的例子说要为自定义类调用 [super encodeWithCoder:coder]; 。 我有一个扩展 NSObject 的类,但收到下
我遇到了这个错误,但我不知道如何修复它。我刚刚添加了来自 Apple 示例 (LazyTableImages) 的延迟加载以及来自照片位置示例项目的 UIImageToDataTransformer
这将保存一个数组(我认为)。 - (void)encodeWithCoder:(NSCoder *)encoder { [encoder encodeObject:myArray forKey
我正在尝试用restkit中的值填充字典。我在restEngine.m中使用NSUserDefaults保存字典。 NSDictionary *dict = [mappingResult dicti
我在重写 encodeWithCoder: 方法时遇到了一个非常奇怪的崩溃。你可以在 https://github.com/reidmain/FDModel/blob/193b0661f7ab1ce6
我们正在开发一款可以将大量内容保存到 Core Data 中的应用程序。它保存的东西主要是NSDate NSNumber & NSString 但它也将很多图片和视频保存为NSData。我正在尝试更改
我知道当你编写实现 NSCoding 的对象的子类的 initWithCoder 方法时,你必须调用 super initWithCoder(而不是 super init),但是我必须在encodeW
尝试使用 NSCoder 时出现错误 Player.swift: class Player: NSObject, NSCoding { private var _playerName: Str
我的自定义对象使用以下方法符合 NSCoding 协议(protocol) required init(coder decoder: NSCoder) { super.init() c
这个问题已经有答案了: NSKeyedUnarchiver unarchiveObjectWithData:data returns non nil object but with nil prope
我正在尝试保存一个名为 queueArray 的 NSMutableArray,以便在应用程序退出后可以再次加载它。我使用了一些教程来帮助我前进,这是我想出的代码。问题似乎是“initWithCode
我有一个自定义类 MyClass,它基本上由几个 NSMutableArrays 组成,没有其他变量。我有一个实体 MyEntity,它有一个属于 MyClass 的 ivar。当我尝试保存实体时,我
错误: Assertion failure in -[UICGColor encodeWithCoder:], /SourceCache/UIKit/UIKit-2372/UIColor.m:1191
我有这个错误。我知道有些人已经在其他线程上回答了这个问题,但给出的答案似乎对我不起作用。 这是我的代码: 人物类: class People: NSObject, NSCoding { var
我知道有几个与此类似的问题,它们往往都围绕着未正确遵守协议(protocol)的类展开,但这不应该是这里的直接问题。 以下是目前给我这个问题的代码的浓缩版: enum Binary: Int {
我在实现 NSCoding 时遇到了问题。这是我的用户类代码: public class User: NSCoder { ... NSCoding 方法: 解码器: required public i
我是一名优秀的程序员,十分优秀!