시뮬레이터에서 실행 한 앱 경로 확인하기. 해당 앱의 경로를 Finder에서 확인하기 위해서 다음 코드를 이용하여 상세 경로를 확인해야한다.그렇지 않을경우 Finder에서 하나씩 찾거나, 검색을 이용해서 찾아야 하지만 코드를 통해 경로를 찍는게 정확하다. 12345678 NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentPath = [dirPath objectAtIndex:0]; NSString *path = [NSString string..
정규식을 이용한 생년월일(예시 19990812) 체크.123456789if (birthdayStr.length > 0) { NSString *ptn = @"^[1-2]{1}[0-9]{3}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}$"; NSRange range = [birthday_tf.text rangeOfString:ptn options:NSRegularExpressionSearch]; if( range.length != birthdayStr.length ){ // 오류출력 return; }}Colored by Color Scriptercs 설명1. {1}. 1자리만 체크2.[1-2]. 1~2까지의 숫자만 유효함3. ^. 정규식 시작.4.$. 정규식 종료.
iOS 다음 지도 길찾기 연동 및 설치되어 있지 않을 경우 다음지도 앱스토어로 이동 처리. 1234567891011121314151617181920212223242526272829303132333435363738394041// 다음지도를 통한 길찾기 버튼 클릭 리스너-(void)goNaverMapClick{ NSURL *url = [NSURL URLWithString:[NSString stringWithFormat: @"daummaps://route?sp=%f,%f&ep=%f,%f&by=CAR",mainView.userLatitude, mainView.userLongitude, lat, lon]]; //다음 지도 설치 유무 판단. BOOL isInstall = [[UIApplication sharedAp..
추가 데이터를 계속해서 받는 배열을 property로 선언 후 객체를 추가 할 경우 오류 발생. ㅁ. 에러 형태 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArray insertObject:atIndex:]: mutating method sent to immutable object' *** First throw call stack: ㅁ. 소스 코드// 테이블뷰에 사용할 배열 선언@property (nonatomic, strong) NSMutableArray *listDataAry;// 초기화self.listDataAry = [[NSMutableArray alloc] ini..
시간 설정 시 Picker View에서 시간 제한하기. 사용 목적.푸시 알림을 사용자가 정해준 시간에만 발송하기 위해 시작시간과 종료 시간을 설정.피커를 사용하여 시작 시간은 종료시간보다 작게, 종료시간은 시작시간 보다 크게 설정하기 위해 사용. 결과피커뷰에서 시간을 선택 할 경우 min, max 설정으로 인해 사용자가 시간을 선택 할 수 없게 한다. 코드피커뷰를 닫을 수 있는 View를 추가하여 닫기 버튼 추가.시작시간, 종료시간 label 선택 시 picker를 보여주고, 제한값을 준다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646..
webview와 세션이 30분 유지되는 문제로 인한 강제 할당 방법.문제webview에서 보안을 위해 세션 처리가 되어있지만 30분 지날 경우 세션 해지된다. 해결방안1. 특정 버튼 선택 시 webview를 호출할 경우 세션을 강제로 할당할 수 있는 고유 ID등을 파라메터와 같이 전달한다.2. 추가적인 문제 발생 30분 이후 앱을 실행할 경우 세션이 만료되어 webview가 제대로 동작하지 않는다.3. 마지막으로 웹뷰에 세션 유지를 위해 파라메터 던지는 시점을 기준으로 현재 시간을 저장한다.4. 앱이 background상태에서 foreground상태로 돌아올 경우 시간을 체크하여 webview를 강제로 호출한다.5. 강제 세션 할당 되도록 설정된 webview 호출 함수loadWebViewWithURL를..
Tag값을 이용한 객체 속성 변경하기. 전역변수로 설정하지 않더라도 Tag를 이용해 객체의 속성을 변경할 수 있다.단 객체가 addSubView된 객체는 전역으로 설정되어 있어야 한다.객체는 어떠한 것도 가능하며 캐스팅해주어야 한다. (객체타입)[뷰 viewWithTag:??]다음 예제는 View에 UIButton, UIimageView를 생성하고, Button 선택 시 ImageView의 backgroundColor를 교체해주는 소스이다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 //팝업 생성.-(void)createPopup{ popupView = [[UIView alloc] initWithF..
원인기존 푸쉬서비스를 이용하지 않은 App ID에 APNS 인증서를 등록하였지만 토큰을 받아오지 못하는 오류. 콘솔에 NSCocoaErrorDomain Code=3000 발생 해결 방법xCode6기준 : xcode > preferences... > acount > apple IDs > 해당 인증서 우클릭 후 인증서 삭제 > 왼쪽 좌측 새로고침인증서를 전체 삭제하더라도 새로고침을 하면 다시 생성된다. Clean 및 xCode를 다시 시작한 후 다시 빌드하니 기존 build Settings의 provisioning Profile 에러가 발생하여 다시 변경 후 실행~토큰이 정상적으로 나온다.