簡體   English   中英

加載從其他目標創建的類時,NSKeyedUnarchiver.unarchiveObjectWithFile崩潰

[英]NSKeyedUnarchiver.unarchiveObjectWithFile crashes when loading classes created from a different target

我有一個PLIST文件,該文件是使用應用程序的生產版本創建的,並作為資源添加到項目中。 生產版本的目標名稱為“小馬駒”。 為了幫助進行應用程序測試,在同一項目“小馬beta”下建立了另一個版本,盡管目標不同。 在運行時,beta應用程序嘗試加載PLIST並崩潰並顯示以下消息:

Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (little pony.Layer) for key (NS.objects); the class may be defined in source code or a library that is not linked'

看起來,PLIST應該包含little pony beta.Layer而不是little pony.Layer類,以便加載成功。

有什么辦法可以使NSKeyedUnarchiver.unarchiveObjectWithFile使用不同的命名空間來工作嗎? 當然,我不想創建兩組不同的預編譯數據,因為這是CPU密集型任務。

我在這里找到了解決方案: https : //stackoverflow.com/a/37162921/279813

該解決方案建議通過使用更改NSCoding類的名稱。

[NSKeyedUnarchiver setClass:[Layer self] forClassName:@"little pony beta.Layer"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM