본문 바로가기

프로그래밍/iOS,macOS

(64)
[Metal] MetalKit 플로우 분석 공통헤더 RederType.h 쉐이더에서 공통적으로 사용할 타입들을 위해 별도 헤더 정의 스위프트 프로젝트에서는 프로젝트.h 에 이 헤더를 import 해주어야 한다. #include 버텍스 : Vertex import MetalKit struct Vertex { var position: float3 } 쉐이더/텍스처 var vertexFunction:MTLFunction var fragmentFunction:MTLFunction var diffuseTexture:MTLTexture Mesh var vertexBuffer:MTLBuffer var indexBuffer:MTLBuffer 초기화 렌더러 생성 simd::float4x4 modelViewProjectionMatrix; simd::float4x4..
swift , iOS 기본 사항만 빠르게 살펴보기 배열 var arrays : [타입] = [] var arrays = [타입]() var arrays : Array = [] var arrays = [ 값, 값, 값 ] var arrays = [타입]( repeating:반복할요소, count: 반복횟수 ) 값추가 arrays.append( 값 ) arrays += [ 값 ] 배열에서 다양한 타입의 값이 저장되어야 하는 경우 타입을 Any 로 지정 Enum c언어처럼 int 가 할당되는 것이아닌 항목자체가 값이다 enum TypeName { case one case two } let value:TypeName = .one let value = TypeName.one 특정 값으로 할당 enum TypeName : String { case value1 //..
swift - objective-c 혼합 사용 브릿징타입 애플에서 제공하는 api와 같이 함수작성 가이드라인을 준수해 작성된 함수들은 Swift, Objective-C 간의 변환이 자동으로 수행된다. swift의 경우 @objc 어노테이션이 붙은 요소들을 objective-c 헤더에 추가하며, objective-c 는 -Bridgind-Header.h 에 헤더를 import 하면 변환이 일어난다. Swift 프로젝트에서 Objective-C 사용 프로젝트명-Bridging-Header.h 추가 자동으로 지정된 경우에는 설정도 자동으로 이루어지나 수동 추가한 경우 Build Settings의 Objective-C Bridging Header에 해당 파일 지정 $(SRCROOT)/ProjectName/ProjectName-Bridging-Header.h..
ios pods google 특이한 에러 occurred error after pod update Pods/GTMOAuth2/GTMOAuth2ViewControllerTouch.muse of undeclared identifier 'GTMOAuth2ErrorTokenUnavailable'; did you mean 'kGTMOAuth2ErrorTokenUnavailable'? check defined enum.'kGTMOAuth2ErrorTokenUnavailable' has deprecated. (GTMOAuth2Authentication.h : line 110 ) What the....!!!! check a podfile pod 'Google'pod 'Google/Signin' pod update : installing libs(depende..
cocoapods 관련 내용 설치$ sudo gem install cocoapods El Capitan$ sudo gem install -n /usr/local/bin cocoapods 초기화 : 해당 프로젝트 폴더$ pod init 생성된 Podfile 작성 install$ pod install update$ pod update 삭제$ sudo gem uninstall cocoapods
ios 크래시 로그 분석도구 symbolicatecrash 사용하기 Organizer에서 해당 빌드를 find로 찾아가 dSYMs 과 app파일을 특정 폴더에 복사한다.크래쉬 로그.txt 혹은 .crash파일을 해당 폴더에 복사한다. 터미널 열어 해당 폴더로 이동후 아래 작업 DEVELOPER_DIR 정의$ export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer $ /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash ./crash_log.txt ./My.app.dSYM --output ./out.txt
UITableView , UITextView 동적 크기 변화 및 스크롤 UITextView 를 가진 테이블뷰 셀에서 동적으로 높이가 변경할때 스크롤 관련 문제가 생긴다.특히 auto-layout 환경은 증상이 좀 심각..textview에서 리턴을 연타하다보면 아래위로 튀는 스크롤~ 2줄로 구성된 셀인데, 위는 UILabel로 가변, 아래는 UITextView로 가변.셀을 생성하고, 각 라인별 뷰를 추가해준다. 패딩 및 추가 처리가 필요한 경우 뷰를 추가해줌. Cell -Content View -루트뷰 -컨텐트뷰 -상단뷰 -하단뷰 Content View 는 기본뷰이므로, 사이즈 좌우 확대 걸어주고, 루트뷰는 super뷰에 맞춰준다.이때 Bottom은 가변이므로, 제약을 999정도로 낮춤.컨텐트뷰도 super뷰에 맞게 제약을 걸어준다.컨텐트뷰의 하위제약으로 컨텐트뷰의 서브인 하..
폰의 사진, 앨범 가져오기 퍼미션체크 PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; switch( status ){case PHAuthorizationStatusAuthorized:// 사용가능break; case PHAuthorizationStatusNotDetermined:// 아직 결정하지 않음[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus authorizationStatus){if( authorizationStatus == PHAuthorizationStatusAuthorized ){// 사용가능} else {// 사용불가}}];break;default:// 사용불가break;} 이미지 ..