(一)界面功能
界面A从实体Admin里搜索到一个实例,并在tableView中逐行打印他的值。
界面B完成后,将修改界面A中那个Admin实例的值。
(二)问题描述
我从界面Apush到界面B,在界面B中完成相关操作后,pop回界面A后,界面A对应本来应被修改的值没有被修改,显示的仍然是旧的值。但我重启simulator再打开界面A,会发现可以成功显示修改后的值。
(三)代码
0、声明
@property(nonatomic, strong, readwrite)Admin * admin;
@property(nonatomic, strong, readwrite)Book * book;
@property(nonatomic, strong, readwrite)NSURL * modelURL;
@property(nonatomic, strong, readwrite)NSManagedObjectModel * mom;
@property(nonatomic, strong, readwrite)NSPersistentStoreCoordinator * psc;
@property(nonatomic, strong, readwrite)NSURL * path;
@property(nonatomic, strong, readwrite)NSManagedObjectContext * moc;
@property(nonatomic, strong, readwrite)NSFetchRequest * request;//发送请求
@property(nonatomic, strong, readwrite)NSArray * array;
//基本都用懒加载到方式做好准备了。下面的adminID只是一个页面间传的字符串,记载登陆时的账号。
1、在A里找到那个Admin实例
- (void)goInit{
_request = [NSFetchRequest fetchRequestWithEntityName:@"Admin"];//设置请求的实体
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",_adminID];
_request.predicate = predicate;//设置请求的条件
_array = [_moc executeFetchRequest:_request error:nil];
for(Admin * t in _array){
_admin = t;
}
}
//这个for写得很蠢,因为我不知道如何不用appdelagte而将上下文存入对象中。只能放在数组中再拿出来。
2、在B中修改那个Admin实例
- (void)goAdd{
_request = [NSFetchRequest fetchRequestWithEntityName:@"Admin"];//设置请求的实体
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",_adminID];
_request.predicate = predicate;//设置请求的条件
_array = [_moc executeFetchRequest:_request error:nil];
int i;
for(Admin * t in _array){
i = t.inBook;
i++;
t.inBook++;
_admin = t;
}
NSError * error = nil;
if(![_moc save:&error]){
NSLog(@"ERROR:%@",error);
}
//NSLog(@"DATA:%d",_admin.inBook);
}
界面A从实体Admin里搜索到一个实例,并在tableView中逐行打印他的值。
界面B完成后,将修改界面A中那个Admin实例的值。
(二)问题描述
我从界面Apush到界面B,在界面B中完成相关操作后,pop回界面A后,界面A对应本来应被修改的值没有被修改,显示的仍然是旧的值。但我重启simulator再打开界面A,会发现可以成功显示修改后的值。
(三)代码
0、声明
@property(nonatomic, strong, readwrite)Admin * admin;
@property(nonatomic, strong, readwrite)Book * book;
@property(nonatomic, strong, readwrite)NSURL * modelURL;
@property(nonatomic, strong, readwrite)NSManagedObjectModel * mom;
@property(nonatomic, strong, readwrite)NSPersistentStoreCoordinator * psc;
@property(nonatomic, strong, readwrite)NSURL * path;
@property(nonatomic, strong, readwrite)NSManagedObjectContext * moc;
@property(nonatomic, strong, readwrite)NSFetchRequest * request;//发送请求
@property(nonatomic, strong, readwrite)NSArray * array;
//基本都用懒加载到方式做好准备了。下面的adminID只是一个页面间传的字符串,记载登陆时的账号。
1、在A里找到那个Admin实例
- (void)goInit{
_request = [NSFetchRequest fetchRequestWithEntityName:@"Admin"];//设置请求的实体
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",_adminID];
_request.predicate = predicate;//设置请求的条件
_array = [_moc executeFetchRequest:_request error:nil];
for(Admin * t in _array){
_admin = t;
}
}
//这个for写得很蠢,因为我不知道如何不用appdelagte而将上下文存入对象中。只能放在数组中再拿出来。
2、在B中修改那个Admin实例
- (void)goAdd{
_request = [NSFetchRequest fetchRequestWithEntityName:@"Admin"];//设置请求的实体
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",_adminID];
_request.predicate = predicate;//设置请求的条件
_array = [_moc executeFetchRequest:_request error:nil];
int i;
for(Admin * t in _array){
i = t.inBook;
i++;
t.inBook++;
_admin = t;
}
NSError * error = nil;
if(![_moc save:&error]){
NSLog(@"ERROR:%@",error);
}
//NSLog(@"DATA:%d",_admin.inBook);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货