创建NSError常令人困惑。根据Apple的指导方针以及社区如何使用NSError,可以安全地按如下方式理解错误键:
现在创建错误变得更容易且更明确
NSError *error = [NSError errorWithDomain:ZYZUserServiceDomain
code:0
whatWentWrongAndWhy:@"Could not log in due to incorrect username and/or password"
why:@"Username and/or password is incorrect"
suggestion:@"Verify username and password is typed correctly"];
方便的属性
@property (nonatomic, readonly) NSString *whatWentWrongAndWhy; // NSLocalizedDescriptionKey
@property (nonatomic, readonly) NSString *why; // NSLocalizedFailureReasonErrorKey
@property (nonatomic, readonly) NSString *suggestion; // NSLocalizedRecoverySuggestionErrorKey
使得获取相关信息变得非常简单
NSLog(@"Could not log in: %@", error.why);
Q: 为什么有一个键同时包含“what”和“why”?我们已经在“FailureReason”-键中回答了“why”。
A: 这就是NSError的设计方式——这是一个很好的设计,因为它允许开发者选择一个结构良好、详细的长句,或者一个更简单的句子。
NSError,简单,设置,解释,如何构造NSError,NSLocalizedDescriptionKey,NSLocalizedFailureReasonErrorKey,NSLocalizedRecoverySuggestionErrorKey,domain,code。
您可以在twitter上通过@hfossli找到我。我是一位在挪威奥斯陆的公司Agens.no的员工。