我正面臨着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的第一次插入... 有沒有緩存我不是看見了什麼?我必須做些什麼來「使我的對象無效」嗎?
有些幫助會非常棒!