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..
iOS에서 youtube 동영상 재생하기. 기존에는 webview를 통해 youtube영상을 재생했지만 구글에서 라이브러리를 제공해주고 있기에 관련 작업이 있어 사용해 보았다. 구글 참조 문서.https://developers.google.com/youtube/v3/guides/ios_youtube_helper위 문서의 cocoaPods 부분을 제외하고 "Adding a YTPlayerView via Interface Builder or the Storyboard" 해당 부분부터 따라하면 된다. 코코팟을 처음 써봤는데 뭔가 싶어 애좀 먹었다. 셋팅은 가능 했지만 원하는대로 되지 않아 결국 포기하고 라이브러리를 수동으로 설치하였다. 추가로 유투브 라이브러리는 설치가 되지 않았다. 다른건 되는데... 진행 ..
버전 관리를 위해 svnX 툴을 이용해 복사해서 브런치에 폴더를 복사했는데 checkout 받고 커밋하려니 커밋이 되지 않는다.콘솔에서 .svn파일을 지우고 다시 업로드 하고 지우고, 몇 번을 했지만 않된다... 사진의 체크박스 부분이 회색으로 되어 있어 체크가 안될경우 우클릭 하여 Add해주면 해결 되는데Add가 나오지도 않는다. 혹시나 싶어 svnX 의 Working Copies에서 업데이트 후 확인해 보니 내가 수정 했던 파일이 수정 되었다고 나오길래해당 파일 선택 후 commit!! 그리고 다시 xCode에서 파일 수정 후 commit!!하니 된다..!!! 이건 뭐... 3시간 삽질 한게 안타까울 뿐...xCode는 예전부터 새로 생성된 저장소에 처음 커밋시 커밋이 안되는 버그가 있었는데 그거랑 ..
기존 개발한 프로젝트는 자동으로 6, 6+에서 자동으로 확대되어 보이는데 반해xCode6에서 새로 생성한 프로젝트는 6, 6+대응해 주어야 한다. 아이폰6, 6+를 대응하지 않을 경우에는 프로젝트내에 Default-568h@2x.png 이미지 파일을 추가하고프로젝트 셋팅에서 Launch Screen File을 삭제할 경우 자동으로 확대되어 보이게 된다. Launch Screen File 파일을 삭제한 경우 다음과 같이 상,하단이 검게 나온다. Default-568h@2x.png 이미지를 추가할 경우 자동으로 확대되어 보인다.오토리사이징 어떻게하나 고민했는데 다행이다. 시뮬레이터에서 5s 기준으로 빌드하면 될 것 같다. 파일 다운로드 하기
NSTimer는 전역으로 설정해주는 것이 나중에 관리할 때 문제가 없기 때문에 전역으로 설정해서 쓰는 편이다. 아니면 "Timer = "이 부분을 제외하고 써줘도 문제는 없으나 객체(view)가 dealloc 되더라도 타이머를 죽이지 않으면 실행되기 때문에 방어 코드가 필히 들어가야 한다. //타이머 생성 timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timerMethod) userInfo:nil repeats:YES]; //타이머 해제 if (timer != nil) { [timer invalidate]; timer = nil; } //활용 - 타이머 userInfo에 값을 할당하여 전달 할 수도있는..
//생성 mainViewController = [[MainViewController alloc] init]; naviController = [[UINavigationController alloc]initWithRootViewController:mainViewController]; [naviController setNavigationBarHidden:YES];//상단 타이틀 배경 숨김 [self.window addSubview:naviController.view]; [mainViewController release]; //MainViewController 에서 다른 View를 추가할 경우 SubViewCont *subView = [[SubViewCont alloc] initWithFrame:CGRectMa..
TableView 기본 구성 .h UITableView*alarmList; .m//생성.alarmList = [[UITableView alloc] initWithFrame:CGRectMake(0, 45, 320, 366) style:UITableViewStylePlain];alarmList.delegate = self;alarmList.dataSource = self;[self.view addSubview:alarmList];[alarmList release]; //필수 함수- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{return 2;}- (UITableViewCell *)tableView:..
1. 새로운 sqlite파일을 하나 만든다. 2. 엑셀 시트안에 사용할 데이터를 입력하고 공백이 있을경우 import시 에러가 발생하므로 첫줄(a1)부터 입력한다. 3. 엑셀에서 다른이름으로 저장 선택 후 .csv확장자 파일로 저장한다. 4. 한글이 깨질경우 방금 저장한 .csv 파일을 워드패드나, 텍스트 편집기 등을 이용하여 utf-8 속성으로 저장한다. 5. sqlite manager프로그램에서 import를 선택 후 First row contains column names를 선택하게 되면 액션시트 첫줄이 컬럼 이름이 되며, 문제가 없을 경우 파란색 아이콘이 뜨며 그 이후에는 column 등을 설정해 주면 된다. 6. 이 방법을 몰랐다면... 완전 개고생을 하였을 테지....