验证对象属性值是否符合类和协议。
PropertySanitizer 被编写来解决 Objective-C 动态性问题。当你从服务器 API 响应中解析 JSON 并且你不确定运行时的属性类型时,你应该检查你的模型属性,以便使你的应用程序在某处 UI 层崩溃之前失败。
例如
@class Account : NSObject
@property (nonatomic, strong) NSNumber *balance;
...
@end
account.balance = [JSONDictionary valueForKey:@"user_balance"]; // May fail if "user_balance" is string
要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
。
该库有一个用于验证的方法
@interface NSObject (PRSSanitizer)
- (BOOL)prs_validatePropertiesValuesWithError:(NSError * __autoreleasing *)error;
@end
示例
account.balance = [JSONDictionary valueForKey:@"user_balance"]; // May fail if "user_balance" is string
NSError *validationError;
BOOL valid = [account prs_validatePropertiesValuesWithError:&validationError];
if (valid) {
// Everythind is ok
} else {
// You can check for actual error code
if ([checkError.domain isEqualToString:PRSSanitizerErrorDomain] &&
checkError.copy == PRSSanitizerErrorValueInvalidClass) {
// Invalid class error
}
}
有关错误代码,请查阅 NSObject+PRSSanitizer.h 文件。
- Supported build target - iOS 8.3
- Earliest supported deployment target - iOS 7.0
PropertySanitizer 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "PropertySanitizer"
Oleg Poyaganov, [email protected]
PropertySanitizer 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。