【发布时间】:2015-09-21 05:01:12
【问题描述】:
我在数据库中添加模型对象时遇到了这个崩溃,我已经象征性地崩溃了,
这是崩溃的堆栈跟踪
SIGSEGV SEGV_MAPERR
libobjc.A.dylib 0x366746ba objc_retain + 8
1
基础 0x2907887d _encodeObject + 1066
2
基础 0x29079a6f -[NSKeyedArchiver _encodeArrayOfObjects:forKey:] + 400
3
基础 0x2907a051 -[NSArray(NSArray) encodeWithCoder:] + 182
4
基础 0x2907887d _encodeObject + 1066
5
MyApp 0x000d3da3 -[WorkOrder encodeWithCoder:] (WorkOrder.m:97)
6
基础 0x2907887d _encodeObject + 1066
7
基础 0x2907ebd9 +[NSKeyedArchiver archivedDataWithRootObject:] + 154
8
CoreData 0x2809c861 -[NSSQLiteConnection 执行] + 1762
9
CoreData 0x280d99af -[NSSQLiteConnection updateRow:] + 544
10
CoreFoundation 0x283a8965 ____NSDictionaryEnumerate_block_invoke421 + 22
11
CoreFoundation 0x282b8740 CFBasicHashApply + 118
12
CoreFoundation 0x283a6367 __NSDictionaryEnumerate + 268
13
CoreData 0x2816bdf3 -[NSSQLCore writeChanges] + 544
14
CoreData 0x280d493d -[NSSQLCore saveChanges:] + 854
15
CoreData 0x280a2b25-[NSSQLCore executeRequest:withContext:error:] + 734
16
CoreData 0x28154a35 __65-[NSPersistentStoreCoordinator executeRequest:withContext:error:]_block_invoke + 3622
17
CoreData 0x2815ca13 gutsOfBlockToNSPersistentStoreCoordinatorPerform + 260
18
libdispatch.dylib 0x36bc52cf _dispatch_client_callout + 20
19
libdispatch.dylib 0x36bcca3d _dispatch_barrier_sync_f_invoke + 46
20
核心数据 0x2814ef8d _执行 + 134
21
CoreData 0x280a2703-[NSPersistentStoreCoordinator 执行请求:withContext:错误:] + 312
22
CoreData 0x280c47d1 -[NSManagedObjectContext 保存:] + 854
23
MyApp 0x0011f83f __37-[WorkOrderManagement saveWorkOrder:]_block_invoke (WorkOrderManagement.m:96)
24
libdispatch.dylib 0x36bc52e3 _dispatch_call_block_and_release + 8
25
libdispatch.dylib 0x36bcf381 _dispatch_root_queue_drain + 1386
26
libdispatch.dylib 0x36bd03c3 _dispatch_worker_thread3 + 92
27
libsystem_pthread.dylib 0x36d2cdc1 _pthread_wqthread + 666
28
libsystem_pthread.dylib 0x36d2cb14 start_wqthread + 6
这是我的代码。
符号化后发现疑似crash的行在此代码块中是
[coder encodeObject:self.lstSelectedEmployees forKey:@"lstSelectedEmployees"];
任何帮助将不胜感激。
-(void) encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.workOrderID forKey:@"workOrderID"];
[coder encodeObject:self.projectID forKey:@"projectID"];
[coder encodeObject:self.locationID forKey:@"locationID"];
[coder encodeObject:self.service forKey:@"service"];
[coder encodeObject:self.suggestedQty forKey:@"suggestedQty"];
[coder encodeObject:self.note forKey:@"note"];
[coder encodeInt:self.appDuration forKey:@"appDuration"];
[coder encodeObject:self.forDate forKey:@"forDate"];
[coder encodeObject:self.quantity forKey:@"quantity"];
[coder encodeObject:self.lstPictures forKey:@"lstPictures"];
[coder encodeObject:self.lstAudios forKey:@"lstAudios"];
[coder encodeObject:self.startTime forKey:@"startTime"];
[coder encodeObject:self.endTime forKey:@"endTime"];
[coder encodeObject:self.comments forKey:@"comments"];
[coder encodeObject:self.assignedToEmployeeName forKey:@"assignedToEmployeeName"];
[coder encodeBool:self.isDone forKey:@"isDone"];
[coder encodeBool:self.isPartial forKey:@"isPartial"];
[coder encodeObject:self.lstSelectedEmployees forKey:@"lstSelectedEmployees"];
[coder encodeObject:self.lstSelectedEquipment forKey:@"lstSelectedEquipment"];
[coder encodeObject:self.lstSelectedMaterials forKey:@"lstSelectedMaterials"];
[coder encodeObject:self.selectedVehicle forKey:@"selectedVehicle"];
[coder encodeInt:self.qtySelectedIndex forKey:@"qtySelectedIndex"];
[coder encodeInteger:self.elapsedCount forKey:@"elapsedCount"];
[coder encodeBool:self.counterRunning forKey:@"counterRunning"];
[coder encodeObject:self.lstEmployees forKey:@"lstEmployees"];
[coder encodeObject:self.lstEquipment forKey:@"lstEquipment"];
[coder encodeObject:self.lstChecklist forKey:@"lstChecklist"];
[coder encodeBool:self.locationChecklistAdded forKey:@"locationChecklistAdded"];
[coder encodeObject:self.scaleValue forKey:@"scaleValue"];
[coder encodeObject:self.lstChecklistitems forKey:@"lstChecklistitems"];
}
【问题讨论】:
标签: ios objective-c core-data crash encoder