我想使用CoreData將一些數據保存到數據庫中,所以我創建了一個名爲'Client'的實體,並帶有一些屬性。其中兩個是'city'和'post_code',都是String類型。我還創建了擴展NSManagedObjects的Client類,並在那裏寫了一些方法。NSManagedObject setValue forKey循環在線程
-(void) setCity: (NSString*) city
{
[self setValue:city forKey:@"city"];
}
-(NSString*) getCity
{
return [self valueForKey:@"city"];
}
-(void) setPostCode: (NSString*) postCode
{
[self setValue:postCode forKey:@"post_code"];
}
-(NSString*) getPostCode
{
return [self valueForKey:@"post_code"];
}
getPostCode和setPostCode按我的預期工作,但調用setCity或getCity會導致問題。正如您在屏幕截圖中看到的,應用程序停止並且方法在線程中循環。
這是我如何調用這些方法
if([databaseResult count] > 0)
c = [databaseResult objectAtIndex:0];
else
c = [NSEntityDescription insertNewObjectForEntityForName:@"Client" inManagedObjectContext:context];
[c setPostCode:[jsonData valueForKey:@"post_code_invoice"]];
[c setClientType:[jsonData valueForKey:@"company_type"]];
[c setCity:[jsonData valueForKey:@"city_invoice"]];
它總是在setCity停止不管我通過什麼樣的數據存在,甚至不能正常工作
[c setCity:@"aaa"];
有沒有人有SIM卡伊拉爾問題?
嘗試一次將方法名稱'setCity:'更改爲其他值。 – Exploring
我想因爲它會再次調用setter,所以它正在遞歸。 – Exploring