프로그래밍/iOS (182) 썸네일형 리스트형 [ios] message sent to deallocated instance arc가 아닌 프로젝트에서는 release된 객체에다가 어떤 일을 할 때 많이 발생하지만 지금 프로젝트는 분명 arc프로젝트인데 해당 현상이 발생하여 삽질을 계속한 결과 alert의 delegate를 self로 한 후 alert의 델리게이트 함수에서 뷰컨트롤러를 닫았더니 크래시가 일어났다. 이때는 닫기 전에 꼭alert.delegate = nil; 을 넣어줘야 문제가 없다. 프로젝트가 맘에 안드는 4점대 버전이라 profile도 안되서 찾지도 못했던것이 함정 (현재 버전은 5.1.1, 제발 업데이트 좀 하시죠 고객사님들) ps. ios8이라서 죽는줄 알았네... ps2. ios8 아니면 안죽음 ㅡㅡ , ios8에서 빡빡해졌거나 베타라서 아직 알아서 해제를 안넣어줬거나 둘중 하나일텐데... [ios] 갤러리에서 사진 가져오기 사진 촬영어플을 만들다 보면 사용자의 요구에 의해 갤러리에서 사진 가져오기가 필요할 때가 있다. 따라서 이번기회에 정리 // 갤러리 띄우기UIImagePickerController* picker = [[UIImagePickerController alloc] init];picker.delegate = self;picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:picker animated:NO completion:nil]; // 델리게이트 함수-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMedi.. [ios] xcode scm status 프로젝트가 svn과 연동되어 있으면 파일을 수정했을 시 옆에 이상한 알파벳 문자가 붙어있는 경우가 많다.각 알파벳의 의미가 궁금해서 이 기회에 정리 U: Working file was updatedG: Changes on the repo were automatically merged into the working copyM: Working copy is modifiedC: This file conflicts with the version in the repo?: This file is not under version control!: This file is under version control but is missing or incompleteA: This file will be added to ver.. [ios] 앱이 죽을 때 debug debug를 하다 보면 main에서 죽는 경우가 많다. 이렇게 죽게 되면 어떤 위치에서 죽는지 알기 힘드므로 해결하기 곤란한 경우가 많다. 디버그창의 메시지를 보면 추측은 할 수 있으나 큰 프로젝트의 경우 정확한 위치를 찾기가 더욱 힘들어 진다. 이럴 떄 breakPoint 설정을 바꾸어 주면 한결 쉽게 접근할 수 있다 위와 같이 breakpoint탭으로 가서 +버튼을 누른 뒤 Add Exception Breakpoint를 선택택 위와 같이 하면 All Exceptions라는 Breakpoint가 생성된다. 위와 같이 설정되어 있으면 Exception의 경우 전부 Break가 걸린다. PS. 이래도 안잡히는 경우가 많은데.. 그럴 경우는 의심가는 부분에 한줄마다 NSLog 걸면 어디서 죽는지 알 수 있다.. [ios] avplayer와 avcaptureSession(비디오 녹화, 소리도 같이 녹음) 을 같이 쓸때 문제 해당작업 시 startRunning에서 많은 시간을 소모하거나, runtime 에러가 나는 경우가 있다. 따라서 위의 2가지를 같이 쓰기 위해서는avcapturesession 선언하기 전- (void)setupAudioSession{ NSError *setCategoryError = nil; if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&setCategoryError]) { } }위와 같이 선언해 주면 된다.따로 dealloc은 해주지 않아도 잘 동작한다. [ios] NSString 특정 범위 얻어오기 글자 수 제한이나, 문자열 중 원하는 범위를 얻어오고 싶을 때 사용하는 방법이다. NSString *text = @"1234567890"; NSRange range = {0, 3}; NSString *subText = [newText substringWithRange:range]; 위와 같이 쓰면 subText에는 123이 들어간다. NSRange의 앞부분은 location 뒷부분은 length 위와 같이 쓰면 0번째 위치로 부터 3글자를 얻어오는 것이다. range의 범위를 조절하는 것으로 원하는 문자열을 뽑아낼수 있다. [ios] 디버그 디버그 하다 보면 이 함수가 도저히 어디서 어떻게 쓰는지 감이 안잡힐 때가 있다. 이럴 때는 함수에 break point를 걸어 callStack을 보자. 그럼 그 함수가 왜 쓰인지 금방 찾을 수 있다. [ios] sizeWithFont: constrainedToSize: lineBreakMode: 함수 deprecated CGSize textSize = [_label.text sizeWithFont:[UIFont boldSystemFontOfSize:[UIFont systemFontSize]] constrainedToSize:maxSize lineBreakMode:_label.lineBreakMode]; 위와 같이 텍스트 사이즈를 얻기 위한 함수를 사용하면 ios7이상에서는 deprecated라고 노랑 워닝이 뜬다. 따라서 워닝을 없애기 위해 아래와 같이 수정 NSMutableParagraphStyle* paragraphStyle = [[NSMutableParagraphStyle alloc] init]; paragraphStyle.lineBreakMode = _label.lineBreakMode; paragraphStyl.. 이전 1 ··· 12 13 14 15 16 17 18 ··· 23 다음