我正面临着coredata一个非常奇怪的问题。 我有一个项目与IDS管理,我想更新一个简单的NSNumber动态属性。我这样做,因为总是在我的物品类别:CoreData的奇怪行为NsManagedObject
- (int) hits{
return [self.hitNS intValue];
}
- (void) setHits:(int)h{
self.hitNS=[NSNumber numberWithInt:h];
}
基本上,我创造我的管理,对象与此方法:
[NSEntityDescription insertNewObjectForEntityForName:@"item"
inManagedObjectContext:[self getManagedObjetContextForCurrentThread]];
然后更新我的点击率,我从收到了一些数据后服务器。 CoreData告诉我,它更新的项目,但是当我再次访问该项目:
-(NSArray *) getStoredEntities:(NSString*)entity withPredicate:(NSPredicate*)predicate
{
NSManagedObjectContext *moc=[self getManagedObjetContextForCurrentThread];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:entity
inManagedObjectContext:moc]];
if (predicate)
[request setPredicate:predicate];
NSError *error = nil;
NSArray *fetchResults = [moc executeFetchRequest:request error:&error];
[request release];
return [fetchResults objectAtIndex:0];
}
Item *i=(Item*)[self getStoredEntity:@"Item"
withPredicate:[NSPredicate predicateWithFormat:@"(id==%@)", itemId]];
我的财产item.hits未设置为新的值,我得到旧的。
什么推动我的坚果是,当我杀了我的应用程序,并重新开始,我的对象在那里,它运作良好。如果y更新我的命中数,我得到了良好的价值...
所以我认为我的问题是以某种方式连接到我的对象在CoreData的第一次插入... 有没有缓存我不是看见了什么?我必须做些什么来“使我的对象无效”吗?
有些帮助会非常棒!