【发布时间】:2018-01-13 02:50:48
【问题描述】:
在多功能调用中面临错误反向传播的问题。
例如,
NSError *error = nil;
EMSPlanFolder *planner = [[EMSPlanFolder sharedPlanBuilder] buildPlanFromParsePlan:plan withError:&error];
if (error) {
//error
}
接下来,进入函数:
- (EMSPlanFolder*)buildPlanFromParsePlan:(EMParsedPlan*)parsedPlan withError:(NSError *__autoreleasing*)err
{
....
....
[self deserializePlan:parsedPlan forPlan:newPlanFolder allowingNoEndDate:NO withError:err];
if(err && *err) {
[newPlanFolder.managedObjectContext performBlockAndWait:^{
[EMSPlanFolder deletePlan:newPlanFolder];
}];
return nil;
}
return newPlanFolder;
}
接下来是:
- (void)deserializePlan:(NSArray*)planElements forPlan:(LMSPlanFolder*)planFolder allowingNoEndDate:(BOOL)allowNoEndDate withError:(NSError *__autoreleasing*)err {
....
....
if(err) {
*err = [NSError errorWithDomain:@"Application" code:-1 userInfo:@{ NSLocalizedDescriptionKey:[NSString stringWithFormat:@"Plan was not found."]}];
}
return;
}
问题是,当它反向传播到第一个代码 sn-p 时会导致崩溃。有什么建议
【问题讨论】:
-
你能显示崩溃描述及其堆栈跟踪吗?
-
您能否添加您正在使用上述功能的崩溃详细信息?\
-
抱歉,没有记录崩溃描述,我只收到一条消息,说明“exc_bad_access code=exc_i386_gpflt”
-
*** -[NSError retain]: message sent to deallocated instance 0x6000056545e0
-
第三个 sn-p 中的错误生成是否发生在代码块中,例如。 G。在
NSManagedObjectContext的performBlockAndWait:内?
标签: ios objective-c error-handling nserror