본문 바로가기

전체

(325)
[ios] UIImage를 jpg파일이나 raw파일로 저장하는 법 사진촬영 어플을 제작하다 보면 가끔 중간과정의 사진을 확인 할 일이 종종 생긴다. 이미지뷰를 만들어서 띄어서 봐도 되겠지만, jpg로 보는 것이 편하기에... 또한 jpg로 변환하면 제대로 나오고 NSData 자체를 출력하면 이상하게 넘어가는 경우가 많다. 이를 위해 raw파일로 저장하는 법도 같이 적는다. 1. jpg 저장 //jpg로 저장 NSString *jpgPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"originalImage.jpg"]; [UIImageJPEGRepresentation(_originalImage, 1.0) writeToFile:jpgPath atomically:YES]; 빨간색으로 적은 부분이 jpg로 저장될 ..
[ios] non-arc환경으로 작성된 코드 적용하기, 반대의 경우도 non-arc환경으로 작성된 코드를 arc환경 프로젝트에 넣기 위해서는아래와 같이 프로젝트 설정- buildPhase- Compile Sources로 간 뒤 해당 m파일 옵션에 -fno-objc-arc 를 해주면 된다. 반대인 경우엔-fobjc-arc 를 해주면 된다.
[ios] Orientation 1. UIInterfaceOrientation위는 뷰 컨트롤러 상의 위치이고 deviceOrientation은 아래와 같이 반대이다.typedef NS_ENUM(NSInteger, UIInterfaceOrientation) { UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight, UIInterfaceOrientationLandscapeRight = UIDeviceOrienta..
[ios] AVCaptureSession에서 flash, focus 다루기 일반 UIImagePickerController를 사용하면 카메라에 접근할 수 있는 개체수가 한정되어 있다. 이로 인해 좀 더 깊게 접근 하려면 AVcaptureSession을 사용해야 한다. UIImagePicker와는 다르게 CameraDevice에 접근하려면 device를 받아와 설정해줘야 한다. 1. flash Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice"); //디바이스 받아옴 if (captureDeviceClass != nil) //디바이스를 제대로 가져온 경우에만 동작 { if ([_videoDevice hasFlash]) //단말이 플래시를 가진 경우에만 실행 { NSError *error = nil; [_videoDev..
[ios] NSString에서 숫자만 추출하기 NSString* groupName = @"default1"; //숫자가 포함된 문자열 NSMutableString* strippedString = [NSMutableString stringWithCapacity:groupName.length]; //숫자가 들어갈 문자열, 크기는 숫자가 포함된 문자열 만큼 잡음 NSScanner* scanner = [NSScanner scannerWithString:groupName]; //숫자가 포함된 문자열을 검색할 스캐너 NSCharacterSet* numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"]; //숫자 문자셋 while ([scanner isAtEnd] == NO) //문자..
[ios] 아이폰 연락처 동기화 편한 관계로 구글계정에 연락처를 올린 후 설정 - 메일, 연락처, 캘린더 - 계정추가 -기타-CardDev계정추가 Google.com지메일 계정지메일 비번 위와 같이 등록한 다음 동기화를 했었다. 위는 구글 연락처 동기화를 안하면 앱단에서 해당 연락처를 가지고 오지 못한다. 그에 맥과 아이폰 동기화 하는 방법을 적는다. 지메일 주소록 ->더보기- 내보내기-vCard형식 다운로드가 완료되면 실행 맥의 연락처 앱에 자동으로 추가됨 아이폰으로 와서 icloud 동기화를 하면 끝 p.s 천개나 전화번호 추가 삭제한다고 autohotkey로 매크로 만들고 놀았는데 이것도 나름 재미짐
[ios] alert show에서 죽을때 사용한 상황은 라이브러리 안에서 UIAlert를 선언한 뒤 호출해줄때 UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"AutoCrop실패" message:@"crop이미지 전송" delegate:nil cancelButtonTitle:@"확인" otherButtonTitles:nil, nil]; 위와 같이 선언하고 바로 [alert show];만 호출했는데도 죽었다. 위의 경우[alert show] 대신에 [alert performSelectorOnMainThread : @selector (show) whitObject : nil waitUntilDone : YES]; 를 사용하라고 한다. 위의 문장은 [alert show] 를 메인 스레드에서 실행..
[ios] UIButton 글자 바꾸기 간단한건데 맨날 까먹는다 button에 .연산자로 검색하면 titleLabel이 나오고 이에 또 .연산자를 쓰면 text가 나온다. 이걸 가지고 바꿔보려고 mainThread에 올리고 별짓을 다해도 버튼에 text는 그대로이다. 버튼 text를 변경하고 싶은경우 [button setTitle: @"바꿀말" forState : UIControlStateNormal]; 위와 같이 바꾸자 이거때문에 검색 자주하는거 같아 적어둔다.