SafeKit可以大大降低崩溃概率。
使用起来非常简单,无需修改任何代码。
pod "SafeKit"
+ (void) load{
[self safe_swizzleMethod:@selector(safe_objectAtIndex:) tarClass:@"__NSArrayI" tarSel:@selector(objectAtIndex:)];
[self safe_swizzleMethod:@selector(safe_arrayByAddingObject:) tarClass:@"__NSArrayI" tarSel:@selector(arrayByAddingObject:)];
}
@interface NSArrayTests : XCTestCase
@property (strong, nonatomic) NSArray *array;
@end
@implementation NSArrayTests
- (void)setUp {
[super setUp];
self.array = @[@"0", @"1", @"2"];
}
- (void)tearDown {
[super tearDown];
}
- (void)testObjectAtIndex {
id value = [self.array objectAtIndex:10];
XCTAssert(value == nil);
value = self.array[10];
XCTAssert(value == nil);
}
- (void)testArrayByAddingObject {
id value = nil;
[self.array arrayByAddingObject:value];
}
@end
测试成功!
SafeKit遵从Apache License, version 2.0的条款。请查阅LICENSE文件以了解详细信息。
欢迎贡献。我们将审查所有拉取请求,如果您发送给我们一个好的请求/感兴趣,我们很高兴给您提供推送权限。或者,您可以与我们一起工作。
请注意添加Star,您的支持是我最大的动力,谢谢。