시간 설정 시 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 에러가 발생하여 다시 변경 후 실행~토큰이 정상적으로 나온다.
iOS에서 youtube 동영상 재생하기. 기존에는 webview를 통해 youtube영상을 재생했지만 구글에서 라이브러리를 제공해주고 있기에 관련 작업이 있어 사용해 보았다. 구글 참조 문서.https://developers.google.com/youtube/v3/guides/ios_youtube_helper위 문서의 cocoaPods 부분을 제외하고 "Adding a YTPlayerView via Interface Builder or the Storyboard" 해당 부분부터 따라하면 된다. 코코팟을 처음 써봤는데 뭔가 싶어 애좀 먹었다. 셋팅은 가능 했지만 원하는대로 되지 않아 결국 포기하고 라이브러리를 수동으로 설치하였다. 추가로 유투브 라이브러리는 설치가 되지 않았다. 다른건 되는데... 진행 ..
문제. 별도의 로그인을 통해 받은 세션값을 웹뷰에 할당하고, 다른 계정으로 로그인 시 기존 쿠키값이 남아있는 문제가 발생. 이를 해결하기 위해 전체 쿠키 삭제. // 모든 캐쉬 삭제-(void)deleteAllCookie {NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];for (NSHTTPCookie *cookie in [storage cookies]){[storage deleteCookie:cookie];} } //특정 도메인만 삭제-(void)deleteCookieDomain:(NSString *)domain {NSHTTPCookieStorage *cookies = [NSHTTPCookieStorage shar..
버전 관리를 위해 svnX 툴을 이용해 복사해서 브런치에 폴더를 복사했는데 checkout 받고 커밋하려니 커밋이 되지 않는다.콘솔에서 .svn파일을 지우고 다시 업로드 하고 지우고, 몇 번을 했지만 않된다... 사진의 체크박스 부분이 회색으로 되어 있어 체크가 안될경우 우클릭 하여 Add해주면 해결 되는데Add가 나오지도 않는다. 혹시나 싶어 svnX 의 Working Copies에서 업데이트 후 확인해 보니 내가 수정 했던 파일이 수정 되었다고 나오길래해당 파일 선택 후 commit!! 그리고 다시 xCode에서 파일 수정 후 commit!!하니 된다..!!! 이건 뭐... 3시간 삽질 한게 안타까울 뿐...xCode는 예전부터 새로 생성된 저장소에 처음 커밋시 커밋이 안되는 버그가 있었는데 그거랑 ..
자료 정리 안됨... 참고 URL 리스트http://www.mcthe.com/xe/study/22881http://dogfeet.github.io/articles/2012/persist-cookie-of-uiwebview.html //웹뷰에 쿠키 실어 보내기 NSURL *url = [NSURL URLWithString:COUPON_STORE_URL]; NSMutableURLRequest *webRequest = [NSMutableURLRequest requestWithURL:url]; //저장된 쿠키 정보를 가져온다.NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; NSHTTPCookie *cookie = nil; NS..
사용자 위치정보값을 토대로 기상청에서 날씨 정보를 가져오기 위해 구글 API를 사용했지만 하루 2,500번 밖에 지원되지 않아 CLGeocoder 테스트삼아 해봤더니 잘 된다.참고로 사용자의 현재 위도 경도 값은 가져와야 한다.일전에 정리해 두었던 내용 참조 : [iOS]iOS8 시뮬레이터에서 GPS 값 받기, CLLocationManager 대응. //라이브러리 추가.#import #import //주소 반환-(void)getGeoCoder{CLGeocoder *geocoder = [[CLGeocoder alloc] init];[geocoder reverseGeocodeLocation:self.currentLocation completionHandler:^(NSArray *placemarks, NSEr..