亲爱的社区。Bellow是代码的一部分,它可以工作,但是对我来说有两个问题(代码在AppDelegate主线程中工作,从选择对象开始并按下按钮):1.有时,我不知道在代码中我在哪里看到了错误。我不明白,错误(你可以看到它在下面)是从哪里开始的,但如果我在里面有数据(SQLLite文件在70 it左右),就会发生这种情况。2.当删除进程正常工作时,应用程序启动eat内存从40 to到512 to,并在进程完成后保持在相同的级别上。启用内存GC。
你能建议些什么来优化它吗?我有疯狂的两周,在那里我检查谷歌和其他资源,并试图组合代码在我的应用程序。
附注:一些注意事项--如果我不保存moc,我就不能工作,bcs在数据删除后立即开始同步并填充相同的数据。如果不进行保存,则每个实体都有双卷。
2011-01-21 12:54:11.158雪14721:9da7在保存前处理挂起的更改失败。经过100次尝试,上下文仍然很脏。通常,这种递归清理是由错误的验证方法、-willSave或通知处理程序造成的。2011-01-21 12:54:11.160下雪14721:9da7 *终止应用程序由于非常规异常'NSInternalInconsistencyException',原因:“保存前未能处理挂起的更改。经过100次尝试,上下文仍然很脏。通常,这种递归清理是由错误的验证方法-willSave引起的,或通知处理程序.‘*第一次抛出时的调用堆栈:(0 CoreFoundation 0x00007fff885317b4 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x00007fff88bc10f3 objc_exception_throw + 45 2 CoreData 0x00007fff8005a654 CoreData _prepareForPushChanges:+ 244 3 CoreData 0x00007fff8005a0af -NSManagedObjectContext保存:+ 207 4雪0x0000000100006fe9 _30-AppDelegate syncOneCarrier:_block_invoke_0 + 1657 5 Foundation 0x00007fff87c4e82 -NSBlockOperation main + 157 6 Foundation 0x00007fff87c3ede4 -__NSOperationInternal start + 681 7 Foundation 0x00007fff87d1dbeb __doStart2 + 97 8 libSystem.B.dylib0x00007fff85f082c4 _dispatch_call_block_and_release + 15 9 libSystem.B.dylib 0x00007fff85ee6831 _dispatch_worker_thread2 + 239 10 libSystem.B.dylib 0x00007fff85ee6168 _pthread_wqthread + 353 11 libSystem.B.dylib 0x00007fff85ee6005 start_wqthread + 13
NSUInteger x = 0;
NSError *error = nil;
for (NSManagedObject *carrier in [carriersArrayVisible selectedObjects])
{
NSString *carrierName = [NSString stringWithString:[carrier valueForKey:@"name"]];
[carriersToExecute addObject:carrierName];
[managedObjectContext deleteObject:carrier];
//[managedObjectContext processPendingChanges];
if (x % 10 == 0) {
//[managedObjectContext save:&error];
[managedObjectContext processPendingChanges];
if (error) NSLog(@"Failed to save to data store syncOneCarrier: %@", [error localizedDescription]);
[pool drain],pool = nil;
pool = [[NSAutoreleasePool alloc] init];
}
x++;
}
[pool drain],pool = nil;
[managedObjectContext save:&error];发布于 2011-01-21 15:57:33
基于错误,您在某个验证方法中做了一些错误的事情。
先检查一下,然后发布您所拥有的任何验证代码,然后可能有人可以帮助您解决这个问题。
https://stackoverflow.com/questions/4758083
复制相似问题