2011-07-09 31 views
4

我得到這個錯誤,我不知道如何解決它。我只是從Apple的示例(LazyTableImages)與Photo Locations示例項目中的UIImageToDataTransformer類相結合添加了延遲加載。UIImage encodeWithCoder urecognised selector?

2011-07-08 -[UIImage encodeWithCoder:]: unrecognized selector sent to instance 0x73af2e0 
2011-07-08 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage encodeWithCoder:]: unrecognized selector sent to instance 0x73af2e0' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x02e65919 __exceptionPreprocess + 185 
    1 libobjc.A.dylib      0x02fb35de objc_exception_throw + 47 
    2 CoreFoundation      0x02e6742b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187 
    3 CoreFoundation      0x02dd7116 ___forwarding___ + 966 
    4 CoreFoundation      0x02dd6cd2 _CF_forwarding_prep_0 + 50 
    5 Foundation       0x02b46076 _encodeObject + 1076 
    6 Foundation       0x02b51495 +[NSKeyedArchiver archivedDataWithRootObject:] + 206 
    7 CoreData       0x0098e0f5 -[NSSQLiteConnection execute] + 2677 
    8 CoreData       0x009e00d2 -[NSSQLiteConnection updateRow:] + 354 
    9 CoreData       0x009df084 -[NSSQLConnection performAdapterOperations:] + 180 
    10 CoreData       0x009ded7e -[NSSQLCore _performChangesWithAdapterOps:] + 494 
    11 CoreData       0x009dd876 -[NSSQLCore performChanges] + 406 
    12 CoreData       0x009d7338 -[NSSQLCore saveChanges:] + 216 
    13 CoreData       0x00995539 -[NSSQLCore executeRequest:withContext:error:] + 409 
    14 CoreData       0x00a4411b -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 3691 
    15 CoreData       0x009cdc48 -[NSManagedObjectContext save:] + 712 
    16 Playing        0x0004b99d -[TheData saveEvent] + 93 
    17 Playing        0x00048097 -[TheData updateEvent:] + 1527 
    18 Playing        0x00047943 -[TheData runUpdateWithData:] + 659 
    19 CoreFoundation      0x02dd642d __invoking___ + 29 
    20 CoreFoundation      0x02dd6301 -[NSInvocation invoke] + 145 
    21 Foundation       0x02ba19a5 -[NSInvocationOperation main] + 51 
    22 Foundation       0x02b100c6 -[__NSOperationInternal start] + 747 
    23 Foundation       0x02b0fd1a ____startOperations_block_invoke_2 + 106 
    24 libSystem.B.dylib     0x924f1fc4 _dispatch_call_block_and_release + 16 
    25 libSystem.B.dylib     0x924e4292 _dispatch_worker_thread2 + 228 
    26 libSystem.B.dylib     0x924e3d21 _pthread_wqthread + 390 
    27 libSystem.B.dylib     0x924e3b66 start_wqthread + 30 
) 
terminate called after throwing an instance of 'NSException' 
sharedlibrary apply-load-rules all 
Current language: auto; currently objective-c 

回答

9

UIImage不符合NSCoding協議,以及(因此)沒有實現encodeWithCoder:。您可能想要將圖像轉換爲數據表示(例如,PNG數據)並對其進行編碼。

編輯:另請參閱this answer以瞭解解決方法。

+1

從iOS 5開始,UIImage確實符合NSCoding ...然而,我試圖找出適用於iOS 4和5的解決方案。 – Sahil

+0

謝謝Wevah。你的答案有效! –