问题标签 [nskeyedunarchiver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - NSKeyedArchiver Doesn't Seem Properly Save an MPMediaItemCollection Object
I am trying to save a playlist of songs created with the media picker. I tried to use the suggestion provided in Persist a MPMediaItemCollection Object Using NSUserDefaults. This solution uses NSKeyedArchiver as follows:
Then when the MPMediaItemCollection needs to be retrieved, the following is performed:
While this seemed to work at first, I found that it doesn't work consistently over time. It seems that after my app is loaded after a new software release, some of the media items in the playlist are corrupted. For example, when I try to load the song title from the retrieved MPMediaItemCollection for display in a tableView as follows:
the song title is nil for some of the entries. If I try to grab the persistentID for the song at this index in the queue, there is a persistentID, but it doesn't point to a valid song (so its probably just garbage).
SO THE QUESTION IS: Is it possible to save a MPMediaItemCollection that I can be sure is valid across all launches and software upgrades (both my upgrades and iOS upgrades). If so, how?
ios - Segue 与 NSUserDefaults + NSCoder 对象
我在 segue 上崩溃了——断点在:
但如果我在调试器上“继续”,一切都会正常工作——应用程序似乎被挂断在这条线上......
我认为这与我的对象是 NSCoder 的 NSUserDefaults 的一部分有关...
我怎样才能使应用程序不会崩溃?!
我没有收到任何错误消息,只是一个断点错误
ios - 如何在一个视图控制器中归档对象,然后在另一个视图控制器中取消归档?
我有一个对象“School”,它有一个可变数组属性“favoritesArray”和一个 NSString 属性“name”。
我有 2 个视图控制器“HomeViewController”和“FavoritesTableViewController”。
在我的 HomeViewController 中,当点击按钮时调用此方法:
然后在我的“FavoritesTableViewController”中,我尝试取消归档以前归档的“学校”对象,以便访问“favoritesArray”。
当在我的“FavoritesTableViewController”中点击一个按钮时,这个方法被调用:
但是它记录 0 意味着它没有取消归档在“HomeViewController”中归档的对象。
如何取消归档在单独的视图控制器中归档的对象?
nsdate - Xcode - 读取包含 NSDate 对象的文件
每次触发事件时,我的应用都会记录其日期:
我成功地记录了事件的日期。但现在我在读回它们时遇到了麻烦。我试过了,但应用程序崩溃了:
我注意到每次 NSDate 写入需要 223 个字节,但官方并未提及。所以我担心使用223字节作为长度来解析文件“dates.dat”会导致以后出现问题。
您是否有任何想法将 dates.dat 读入 NSArray 以便我可以继续其值?
提前致谢
ios - [NSKeyedUnarchiver initForReadingWithData:]:无法理解的存档(0xffffffff、0xffffffd8、0xffffffff、0xffffffe0、0x0、0x10、0x4a、0x46)
在我的应用程序中,我将 myObject 归档到 NSData,然后取消归档 NSData 以获取 myObject。崩溃跟踪
MyObject 包含以下属性:
当尝试 Unarchive NSData 时发生此崩溃。
NSData ==> OS_dispatch_data(138693 字节)。
我使用 [NSKeyedUnarchiver unarchiveObjectWithData:documentData] 来取消归档并在 myobject 类中实现这些方法:
任何人都可以帮助我吗?
ios - 在这种情况下如何处理 unarchiver ..?
我正在制作简单的程序,可以存档我的对象并在启动时取消存档。
我有一个lists.m ,其中名为favouritesList的可变数组使用归档存储到文件中。在列表中,我有一个名为favouriteItem的简单对象
因此,此代码出现问题
我遇到的例外是这个 [NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x62, 0x70, 0x6c, 0x69, 0x73, 0x74, 0x30, 0x30)'
我知道我正在使用空文件取消归档(实际上它是从同样为空的捆绑包中的文件中复制的)。
那么,当我仍然希望我的应用程序在启动时从文件中加载数据时,我该如何避免这种情况。当我用作以下代码时
在这里,即使 self.path 中的文件是空的,它也会返回 nil,我可以说如果它返回 nil,我将第一次分配新的。但是,使用NSkeyedUnarchiver它的工作方式有点不同..你能解释一下它有什么不同吗?我怎样才能避免这个错误..?谢谢你。
ios - NSKeyedArchiver 不会保存或加载对象
所以我有一个包含一些自定义类的数组:
带有游戏的 NSMutableArray (FirstViewcontroller) -带有骰子的游戏 (Game.m) -- 带有选项的骰子 (Dices.m)
在每个自定义类中,我设置了编码和解码:
在第一个视图控制器中,我正在处理加载和保存。但是解码器总是返回空数组。所以里面什么都没有。这是我的代码:
不确定我做错了什么?在- (void)viewDidLoad
FirstViewController 中调用加载。在[NSMutableArray new];
我的数组之后。UnwindSegue
从我的 addViewController返回 grom 时完成保存。
有任何想法吗?
亲切的问候
ios - initWithCoder: 和 NSKeyedUnarchiver 的问题
我目前正在尝试向我的应用程序添加游戏保存功能。最终目标是将大约 300 个自定义对象保存到一个.plist
文件中,并在以后再次提取它们。我已经取得了一些进展,但我遇到了一些问题,initWithCoder:
而且我也不确定我的技术。
a 正在使用以下代码UIViewController
来保存对象(例如,我只在字典中添加了 2 个对象):
这成功地调用了类encodeWithCoder:
中的函数Territory
两次:
当我查看目录时,果然,该文件存在。现在,这是我遇到的问题:运行以下函数时,该initWithCoder:
函数被成功调用两次。函数内的日志initWithCoder:
输出它们应该输出的内容,但函数中的日志UIViewController
返回loadContents
,0
等null
。但是,标签的文本设置正确。
我一直试图让它工作几个小时,但无济于事。如果有人对此有任何见解,请帮助我。另外,我不完全确定我的保存技术是否良好(使用NSMutableDictionary
存储对对象的引用以便输出到一个文件)?谢谢!
objective-c - 归档多个对象并将它们作为目标 C 中的对象数组取消归档
我在整个程序中调用函数 archiveQueue 来存储类型为 MYJSON 的对象,现在我想恢复我迄今为止存储在数组中的所有内容。
以下是我用来存储对象的函数:
以下是我用来恢复对象的功能。
我想知道我应该如何解压缩存储为对象数组的所有内容?