Home » 스터디 » Page 39

스터디

20111220 :: [iOS] 저장이 가능한 간단 메모장 2 (1/2)

지난 글에서 간략한 예제로 만들었던 내용에 이어 오늘은 두 번째 시간. 두 번째 시간을 시작하기에 앞서 다뤘던 내용은 iOS에서 사용자의 데이터를 저장하는 방법과 관련하여 몇 가지를 알아보았고, 그 중에서 비교적 쉽게 접근할 수 있을 것으로 보이는 ‘아카이빙’에 대해 알아보았다. 실제로 아카이빙은 대부분의 코코아터치 객체들이 자신을 아카이빙하는 방법을 알고 있기 때문에 루트 객체를 아카이브하면 자동으로 엮여있는 모든 정보가 아카이브되고, 이것을 간단히 NSKeyedArchiver와 NSKeyedUnarchiver를 사용하여 직렬화된 정보를 파일에 쓸 수 있다는 것 까지 확인해 보았다. 오늘은 이 메모장을 조금 더 확장하여 여러… 더 보기 »20111220 :: [iOS] 저장이 가능한 간단 메모장 2 (1/2)

20111207 :: [iOS] 저장이 가능한 간단 메모장

iOS 앱이 데이터를 저장하는 방법 많은 튜토리얼에서 간단한 아이폰 앱을 만드는 방법을 설명하고 있는데, 이런 튜토리얼을 따라서 이것 저것 만들어 보는 것 또한 재미도 있고, 또 여러가지 테크닉을 익힐 수 있지만 정작 활용이 가능한 앱을 만드는 것은 쉽지 않다. 이 글 (과 아마도 이어질 글들)에서는 메모장과 같이 간단히 입력한 텍스트를 저장하는 앱을 만들어 보는 것을 함께 알아보고자 한다. 혼자 삽질과 염탐(?)을 거듭하여 알아낸 내용들을 정리하는 차원이기도 하니 아주 자세하게는 아니지만 소상히 쓰려고 노력할 것이다. iOS 앱이 어떤 데이터를 영구적으로 보관하는… 더 보기 »20111207 :: [iOS] 저장이 가능한 간단 메모장

20110828 :: iOS5 : Empty Application에서 Storyborad 생성하기

잊기전에 하는 메모 Storyboard iOS5에 추가된 기능으로, 하나의 파일에서 애플리케이션의 모든 혹은 일부의 UI를 디자인하고 각 뷰의 상관관계 및 네비게이션을 설정할 수 있는 도구. Empty Application AppDelegate외에는 다른 클래스는 전혀 만들어지지 않은 프로젝트. 보통 RootViewController 라는  UIViewController 를 생성해서 메인 화면을 작성하게 된다. Empty Application에서 Storyborad  기반 앱으로 발전시켜가기 먼저 빈 스토리보드를 하나 생성한다. 이름은 주고 싶은대로. 프로젝트 세팅에서 타겟 세팅값 중 Main Storyborad File Base Name 속성을 새로 만들어 지정해준다.  AppDelegate.m 파일에는 앱이 런칭되었을 때 main window를 생성하는 코드가… 더 보기 »20110828 :: iOS5 : Empty Application에서 Storyborad 생성하기

20110702 :: 비어있는 프로젝트에서 첫 화면 띄우기

안타깝게도 블로그 글이 아이폰 앱 개발 관련 글로 채워지고 있지만…  메모 차원에서… 프로젝트 생성 : EmptyApp 이라는 이름으로 프로젝트 생성 Storyboard 생성 : EmptyApp.stroyboad라는 이름으로 빈 스토리보드 생성 생성된 스토리보드에서 첫번째 뷰 컨트롤러 생성. initial scene 인지는 속성창에서 체크되어 있는지 여부로 알 수 있다. 앱 델리게이트에서 다음 코드로 앱을 초기화 한다. 일부 코드는 이미 생성되어 있음 -(BOOL)application:(UIApplication *)application didFinishedLaunchingWithOptions:(NSDictionary *)launchingOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainscreen] bounds]]; UIStoryboard *myStoryboard = [UIStroyboard storybordWithName:@”EmptyApp” fromBundle:[NSBundle mainBundle]]; UIViewController *rootViewController = [myStoryboard instantiateInitialViewController]; [self.window… 더 보기 »20110702 :: 비어있는 프로젝트에서 첫 화면 띄우기

20110621 :: NSString 사용하기

NSString에서 알아두어야할 몇가지 메소드들을 정리해본다. 문자열 생성 포맷에 맞게 문자열을 생성하기 +stringWithFormat: 메소드를 사용한다. NSString *newStr = [NSString stringWithFormat:@”%@ : %d”, someObj.name, someObj.score]; -initWithFormat:의 경우 같은 동작을 하지만, 이 때는 수동으로 alloc하므로 릴리즈의 책임을 져야 한다. C문자열로부터 생성 initWithUTF8String:, stringWithUTF8String: 을 통해서 const char* 데이터를 NSString 객체로 바꿀 수 있다. 1 다른 인코딩을 된 문자열이라면 initWithCString:encoding:, stringWithCString:encoding:을 사용할 수 있다. 바이너리 데이터로부터 생성 NSData(파일을 읽어들였거나, 네트워크 스트림으로부터 받은)객체로도 이를 만들 수 있다. initWithData:encoding:을 쓴다. 특히 파일의 경우, stringWithContentsOfFile:encoding:error:및 stringWithContentsOfURL:encoding:error:를 쓸… 더 보기 »20110621 :: NSString 사용하기

20110621 :: Objective-C의 문자열 포맷팅

Formatting Specifier 전체 내용을 정리한 것은 아니지만 참고 삼아. %@ : 종류에 무관하게 Objective-C 객체를 의미한다. 대부분 descriptionWithLocale이나 description 이 출력된다. NSString을 포맷팅할 때 사용한다. %% : “%” 문자 %d, %D, %i : singed-32bit 정수 %u, %U : Unsigend-32bit 정수 %hi : signed-16bit 정수 %ui : unsigned-16bit 정수 %qi : signed-64bit 정수 %qu : unsigned-64bit 정수 %x : signed-32bit 정수를 16진수로 표기함 %X : unsigned-32bit 정수를 16진수로 표기함 %qx : signed-64bit 정수를 16진수로 표기함 %qX : unsigned-64bit 정수를 16진수로 표기함… 더 보기 »20110621 :: Objective-C의 문자열 포맷팅

20110621 :: SQLite3에서 대소문자 구분 없이 비교하기

사실, SQL 표준 구문이겠지만 왜 그간 이 이슈를 한 번도 제대로 생각하지  않았는지는 의문이다. 혹은 아예 테이블/칼럼의 속성 자체에 대소문자를 구분하지 않도록 정의하는 것이 있는지도 모르겠다. SELECT * FROM MyTable WHERE t_Name = ‘Alice’ COLLATE NOCASE; 말미에 붙인 COLLATE NOCASE는 문자열을 비교할 때,  대소문자에 대해 구분을 하지 않는다. 일단 나머지는 다음에 정리하기로하고, 나중에 찾기 쉽에 이것만 메모.