我在将商店实体属性从String迁移到Integer 16时遇到了问题.以下是我采取的步骤:
这是错误:
未解决的错误Error Domain = NSCocoaErrorDomain Code = 134140"操作无法完成.(Cocoa错误134140.)"UserInfo = 0xbd5cd20 {reason =无法找到或自动推断迁移的映射模型,destinationModel = ...
映射模型存在于已编译的.app中:

在项目中:

迁移适用于Integer 16> Integer 32等属性,或更改属性名称时.
我尝试创建一个简单的核心数据项目,并且从String到Integer 16自动迁移(有和没有映射模型).
最奇怪的部分是我尝试以编程方式查找捆绑中的所有映射模型,但没有找到当前源/目标模型.
我正在使用NSImageView来显示大约80帧的动画GIF,每帧长20ms.NSImageView可以"开箱即用"显示GIF动画,但问题是它需要太多的CPU,大约连续10%(在我的核心i5 proc上).仪器显示它花费了大量的CPU时间来解码GIF.
为了提高效率,我尝试了以下方面但没有取得多大成功:
将帧放入QTMovie并播放(我的进程使用4%,播放电影的QTKitServer进程使用另外15%)
绘图直接与视图CGContextDrawImage(〜5%的CPU使用率) -我没有出口的GIF的框架,我就创建了一个CGImageRef从30x30px巴纽我已经躺在附近.
我不知道还有什么可以尝试的.对NSImageView进行子类化并以某种方式缓存图像听起来是个好主意,但是,唉,我是Cocoa的初学者......任何想法都会受到高度赞赏.谢谢!
我试图删除多个组10.000+ NSManagedObjects的方式实在是太内存密集型(约20MB现场字节),和我的应用程序正在被抛弃.以下是delete方法的实现:
+ (void)deleteRelatedEntitiesInManagedObjectContext:(NSManagedObjectContext *)context
{
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
[context setUndoManager:nil];
[fetch setEntity:[NSEntityDescription entityForName:NSStringFromClass(self) inManagedObjectContext:context]];
[fetch setIncludesPropertyValues:NO];
NSError *error = nil;
NSArray *entities = [context executeFetchRequest:fetch error:&error];
NSInteger deletedCount = 0;
for (NSManagedObject *item in entities) {
[context deleteObject:item];
deletedCount++;
if (deletedCount == 500) {
[context save:&error];
deletedCount = 0;
}
}
if (deletedCount != 0) {
[context save:&error];
}
}
Run Code Online (Sandbox Code Playgroud)
我试过了:-setFetchBatchSize,但是还有更多的内存使用.
什么是更节省内存的方法呢?
是否有计划让PAW从JSON响应中生成代码?或者指出一个javascript API来做到这一点?我想根据响应生成obj-c或swift类.