我試圖實現一個函數來編輯一些條目,或者如果什麼都不存在,則創建一個新條目。 下面是代碼NSManagedObject插入和編輯
NSManagedObject *newConnection = [[NSManagedObject alloc] init];
if(_connection != nil) {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Connection" inManagedObjectContext:context];
[request setEntity:entityDesc];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF == %@", _connection.connectionID];
[request setPredicate:pred];
NSError *error;
NSArray *objects = [context executeFetchRequest:request error:&error];
if([objects count] > 0) {
newConnection = objects[0];
}
}
else {
newConnection = [NSEntityDescription insertNewObjectForEntityForName:@"Connection" inManagedObjectContext:context];
}
_connection是對象,我從以前的觀點越來越如果我想編輯的連接。我在executeFetchRequest
之後也得到1個對象,但是如果我試圖將對象[0]分配給newConnection,我得到一個錯誤EXC_BAD_ACCESS
。 有沒有更好的方法來做到這一點?我究竟做錯了什麼?
溶液:
NSManagedObject *newConnection;
代替NSManagedObject *newConnection = [[NSManagedObject alloc] init];
如果應該編輯連接,我從前一個視圖中獲取對象。 _connection是零當我試圖添加新的連接 – D051P0
如果您創建,newConnection類型ID,並且不會瞬時執行第一行中的任何操作,它仍會崩潰嗎? – DogCoffee
@Smick是的,它現在可行! – D051P0