본문 바로가기

Software/iOS & Objective-C

(23)
ARC와 strong, weak, 그리고 cycle 해당 글은 http://mac-ios-web.tistory.com/ 발췌 되었습니다. ARC (Automatic Reference Counting, 자동 참조 카운트)라는 새로운 기술이 나오면서 개발자가 더 이상 메모리 관리를 할 필요성이 없어졌다. 그런데 메모리 관리를 할 필요성이 사라졌다는 것은 메모리 관리에 대해 알 필요가 없다는 것을 꼭 의미하지는 않는 것 같다. 기존보다 좀 더 쉬워졌지만 그 내용을 알지 못하면 어느 순간 서로가 서로를 참조하는 유지 사이클이 발생하게 되고 이는 ARC를 사용함에도 불구하고 Memory Leak (메모리 누출)으로 이어진다. 이 문제를 방지하려면 먼저 프로퍼티의 속성인 strong (강한 참조)과 weak(약한 참조)에 대해 이해할 필요성이 있다. 처음에는 str..
[iOS] AES256 Descryption 에 대하여... 지금 개발하고 있는 App 중에 서버로 부터 받은 string데이터를AES 암호화 알고리즘을 이용하여 복호화 하여, 그안의 TRUE 데이터를 뽑고 싶었다.하지만 복호화를 하여도 데이터가 깨지는 현상이 발생 했다.처음에는 인코딩 오류라고 생각 했으나 결로는 아니었다. 아래는 혹 이글을 보시고 참고가 될 분들을 위해서 금일 맥부기에 작성한 글을 올려 본다.================================================================================현제 서버로 부터 AES 256 로 암호화된 url 정보를 받고 있습니다. 따라서 디크립션 후에 그 url 정보를 뽑아 보고 싶은데요. 문제는 결과에 있습니다. 결과값 부터 보여 드리겠습니다. FINAL : http..
NSString 변환 <—> NSData, char[] 항상 찾아다녔던 데이터 형변환 보고도 또 까먹고 다시 또 찾고... 잘 정리되어 있는 아래의 사이트에서 발췌 했습니다.http://funnyrella.blogspot.kr/2014/01/94-nsstring-nsdata-char.html NSString 변환 NSData, char[] 1. NSData —> NSStringNSString *plainString = [[NSString alloc] initWithData:plainData encoding:NSUTF8StringEncoding]; 2. NSString —> NSDataNSData *plainData = [inputStr dataUsingEncoding:NSUTF8StringEncoding];——————————NSData *plainData =..
iPhone Application Life cylce [본글은 http://blog.naver.com/PostList.nhn?blogId=gboarder 여기서 포스팅 했습니다]아이폰 관련 어플 개발을 하다보면, 이벤트 루프에 대해서 고민을 하게 되는데, 이벤트 루프에 대해서 설명하지 않으면 어렵다. 그래서 이참이 이에 대해서 나름대로 정리해본 내용을 공개한다. 이 내용은 iOS Application Programming Guide의 내용을 이해하고 있다면 불필요한 내용이지만, 대부분 개발자를 만나보면, 제대로 이해하고 있는 분들이 극히 드믈다. 본인도 이 부분때문에 다시 공부해서 이렇게 정리해본 것이다.어플리케이션 라이프사이클은 시작부터 종료까지의 일련 흐름으로서 iOS Application Programming Guide에 나온 내용이기때문이지 대부분 ..
About...Notification...!!! Notification에 대하여... Notification은 하나 이상의 객체가 어떤 이벤트를 받고 싶을때 사용한다. 델리게이트가 1:1 관계로 객체간에 긴밀하게 연결되어 있다면, Notification 서비스는 동적으로 임의적인 연결이 가능하다. 어떤 객체가 관심 있는 이벤트에 대해서 Notification을 받기 위해선 Notification Center에 자신을 등록해야 한다. 다음 코드를 보자. 01: [[NSNotificationCenter defaultCenter] 02: addObserver:self 03: selector:@selector(launchFinished:) 04: name:UIApplicationDidFinishLaunchingNotification 05: object:nil..
객체간을 여행하는 데이터를 위한 안내서 본 글은 http://www.iphoneos.co.kr/zbxe/dev/13845 웹 사이트의 Delegate님의 글을 옴겨온 것입니다. 제목을 "은하수를 여행하는 히치하이커를 위한 안내서"를 패러디 해봤습니다. :) OOP에서 객체간의 데이터 교환은 매우 중요한 한 부분인 것 같습니다. 이 부분을 잘못 접근하게 되면 이탈리안 레스토랑을 차려도 될 만큼 많은 스파게티를 만들어 낼 수도 있고 아이폰에서는 밧데리를 많이 소모시켜서 지구 환경에 영향을 줄 수도 있습니다. 물론 정신 건강에 매우 해로워 정신과 의사들이 어부지리를 얻게 할 수도 있을지 모릅니다. 여튼, 객체간의 잘못된 만남은 남녀간의 잘못된 만남 만큼이나 슬픈 결말로 치닫는 경우를 많이 봐 왔습니다. 일단 어떤 방법을 통해서 객체간에 데이터를 주..
아이폰에서 iOS 앱 테스트 하기 1. 개발자 인증서 만들기. 2. 그리고 만든 인증서 설치하기. 3. App ID 생성하기. 4. 애플리케이션 프로비저닝 프로파일을 만들어야 함. 5. 앱을 설치하고 테스트할 기기 등록. ------------------------------------------------ 1. 키체인 접근 -> 환경설정 -> Certificates(인증서) 선택. 2. 환경설정에서 온라인 인증서 상태 프로토콜 (Certificate Status Protocol(OCPS)) 와 인증서 해지 목록(Certificate Revocation LIst(CRL)) 설정이 OFF 인지 확인 3. 키체인접근 -> 인증서 지원->인증기관에서 인증서 요청 후 iOS 개발자 프로그램에 등록한 이메일과 이름을 정확하게 입력, CA 이메일 ..
property의 역사를 통한 고찰 Objective-C 2.0 이전의 시대...당시의 이름 규칙(코드 컨벤션) 이런 녀석이 있다고 가정, 그리고 당연히 TestClass의 내부에 있는 name에 접근할 일이 생기게 된다. 그래서 name에 접근하기 위해 접근자(accessor, getter and setter)를 만들게 됩니다. 당연히 어떤 함수든 뭐든 저 객체에서 저 데이터(name)을 밖으로 끄집어낼 방법이 필요하다! 그럼 getter는? 어떤 프로그래머가 Objective-C를 다룬지 얼마나 오래 되었는가? 를 판단하기 위해 손쉽게 알 수 있는 방법은 getter를 getName이라고 말하는가? 를 보고 판단한다. Obj-C의 세상에서는 getter는 그냥 name이다.!! 이건 아무래도 Obj-C의 전체 설계 사상이 객체간의 메시..