Dr.Light

by zanyfly

zanyfly / Dr.Light

iOS safety kit to avoid crash in some cases(OC)

127 Stars 14 Forks Last release: Not found MIT License 25 Commits 6 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Introduction

中文详解 the name of Dr.Light is inspird by Dr.Strange, it is a very simple,light kit to avoid crash in some cases.

range of protection

  • fresh ui in nonmain thread.
  • add/remove KVO unpaired
  • pushing viewcontrollers frequently within a short perid.
    for example,add push code in
    viewDidLoad
    ,before
    viewDidAppear
    has called,it is dangerous.It may caused crash
    cannot addsubView:self
    .

pushing the same viewcontroller into one stack. - send unrecognized selector

Installation

CocoaPods

pod 'DrLight'

Manual

import the files you needed into your project.

Useage

ui thread-safety

just include UIView+ViewCrashSafety.h、UIView+ViewCrashSafety.m in your project.

kvo safety

include

UIView+ViewCrashSafety.h
UIView+ViewCrashSafety.m
in your project,then import the header.
#import "NSObject+KVOCrashSafety.h"

start protection for the KVO logic you coded.

school = [[School alloc] init];
school.schoolName = @"First school";
school.kvoSafteyToggle = YES;

[school addObserver:self forKeyPath:@"schoolName" options:NSKeyValueObservingOptionNew context:nil];

navigation safety

include

UINavigationController+NestedPushCrashSafety.h
UINavigationController+NestedPushCrashSafety.m
in your project. set the limit of time interval between pushing viewcontroller,defaut is 0.1.
self.navigationController.navStackChangeInterval = 0.1;

unrecognized selector safety

include

NSObject+SelectorCrashSafety.h
NSObject+SelectorCrashSafety.m
in your project.

Note

the safaty toggle closed by default in debug mode in order to discover crash problems in the development phase. If you are eager to turn on the protection in debug mode, please comment out this line of code

#define DRLIGHT_TOGGLE_CLOSED
.

Contact

I'll add more features in a later release,you can contact me [email protected]

License

DrLight is released under a BSD License. See LICENSE file for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.