해당 객체 사용을 시간이나 패키지 명등을 통해 제약을 걸고 싶을 때 사용하는 방법이다.
1. 타임락
- (id) init
{
NSLog(@"IDCardRecognize init");
self = [super init];
if (self) {
if (![self checkTime]) //시간을 체크하여 지난 경우는 init결과를 nil로 반환
return nil;
}
return self;
}
- (BOOL)checkTime
{
NSDate *expiredDate = [self dateFromString:@"20140421" withFormat:@"yyyyMMdd"]; //해당날짜 설정
if ([[NSDate date] compare:expiredDate] != NSOrderedAscending) //해당날짜보다 이르지 않을경우
{
NSLog(@"Library licese is expired!!");
return NO; //NO반환
}
return YES; //해당날짜보다 이르면 YES반환
}
- (NSDate *)dateFromString:(NSString *)str withFormat:(NSString *)format
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:format];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ko_KR"];
[formatter setLocale:locale];
return [formatter dateFromString:str];
}
2. 패키지 락
- (id) init
{
NSLog(@"IDCardRecognize init");
self = [super init];
if (self)
{
if (![self checkPackage]) //패키지 명을 체크하여 다른 경우는 init결과를 nil로 반환
return nil;
}
return self;
}
- (BOOL) checkPackage
{
NSString* bundleName =[[NSBundle mainBundle] bundleIdentifier]; // 패키지 명 가져오기
NSLog(@"bundleName = %@",bundleName); // 패키지 명 출력 테스트
NSString* packageName = @"com.test.test"; //package 명
if (![bundleName isEqualToString:packageName]) // 패키지 명과 다르다면
{
NSLog(@"package name is not matching!!");
return NO;
}
return YES;
}
'프로그래밍 > iOS' 카테고리의 다른 글
[ios] 주소->위, 경도로 위,경도 ->주소로 (0) | 2015.04.08 |
---|---|
[ios] [__NSDictionaryI setObject:forKey:]: unrecognized selector sent to instance (0) | 2015.04.08 |
[ios] ios7에서 버튼에 외곽선 넣기 (0) | 2015.04.08 |
[ios] 스토리보드 뷰전환, delegate설정 (0) | 2015.04.08 |
[ios] 버튼 클릭시 로딩중 버튼 만들기 (0) | 2015.04.08 |