小编Dav*_*vid的帖子

如何对NSCoding进行单元测试?

我有一个iOS应用程序,使用NSCoding持久化数据,更确切地说是NSKeyedArchiver.此应用程序已在App Store上提供.

我正在研究应用程序的第2版,数据模型应该改变.所以我需要处理数据模型迁移.我希望它由单元测试覆盖.

在我的测试中,我想用旧数据模型动态生成持久化数据,启动迁移并查看是否一切顺利.

目前,归档对象如下所示:

MyDataModelObject *object = ....
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:object forKey:key];
[archiver finishEncoding];
Run Code Online (Sandbox Code Playgroud)

问题是,MyDataModelObject可能会在应用程序的版本2中重新计算甚至删除.所以我不能在我的测试中使用这个类来生成"旧版本档案".

有没有办法在encodeWithCoder:不使用此类的情况下模拟类方法中的操作?


我想要实现的目标如下

- testMigrationFrom_v1_to_v2 {
    // simulate an archive with v1 data model
    // I want this part of the code to be as simple as possible
    // I don't want to rely on old classes to generate the archive
    NSDictionary *person = ... // { firstName: John, lastName: Doe }
    NSDictionary *adress = ... // { …
Run Code Online (Sandbox Code Playgroud)

cocoa unit-testing objective-c nscoding ios

6
推荐指数
1
解决办法
2011
查看次数

在iOS上的内存中缓存图像,更小的是:UIImage或NSData对象?

我正在iOS上进行图像缓存.图像从URL下载并作为UIImage存储在NSDictionary中(我不想或不需要"在磁盘上"缓存).

问题是:我应该将图像存储在我的字典中作为UIImage还是NSData?哪一个在记忆方面明显更小?

memory uiimage nsdata ios

3
推荐指数
2
解决办法
4574
查看次数

标签 统计

ios ×2

cocoa ×1

memory ×1

nscoding ×1

nsdata ×1

objective-c ×1

uiimage ×1

unit-testing ×1