외규장각 도서 환수 모금 캠페인

'Interesting/objective - C'에 해당되는 글 48건

  1. 2012.09.28 protocol delegate 사용방법
  2. 2012.08.30 touch method
  3. 2012.07.26 밝기 조절 & 슬립상태 돌입 막기
  4. 2012.07.13 libsqlite3.dylib 주요 함수들
  5. 2012.07.13 NSZombie 사용법
  6. 2012.07.11 UIDocument
  7. 2012.07.11 UIPageViewController
  8. 2012.07.10 UINavigationController 제어하기
  9. 2012.07.10 NSFileManager, NSFileHandle, NSData
  10. 2012.04.26 Xcode String trim 방법

xxx.h

@protocol delegate명;


@property(nonatomic, retain) id<delegate명> delegate;


맨 밑에

@protocol delegate명 <NSObject>


- (void)delegate_method:(returnType)variable;


@end


xxx.m

@synthesize delegate=_delegate;


[_delegate release];


- (id)initWithDelegate:(id<delegate명>)delegate {

self = [self init];

if(self) {

[self setDelegate:delegate];

}

}


delegate보낼 method 안에는

if([self.delegate respondsToSelector:@selector(delegate_method명:)]) {

[self.delegate delegate_method명:variable];

}


delegate 구현

- (void)delegate_method:(returnType)variable {

NSLog(@"%@", variable);

}

Posted by 닉네임영역
,


LongTab & multiTab & tapCount을 인식 및 처리하기 위해서는 touch method를 써야 한다.


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

: 터치가 처음 일어날때 호출


-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

: 터치가 끝났을 때 호출


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

: 터치 한 상태에서 이동 했을 때 호출


- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

: 터치 이벤트가 시스템에 의해 취소될 때

Posted by 닉네임영역
,

if ([[UIScreen mainScreen] respondsToSelector:@selector(brightness)]) {

        [[UIScreen mainScreen] setBrightness:1.0]; // 밝기 최대로

}

[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; // 슬립모드 돌입 막기



# 밝기 조절은 iOS5부터 지원한다.

만약 iOS4 버전부터 테스트할 경우라면 respondsToSelector를 활용하여 실행해야 한다.

Posted by 닉네임영역
,

- sqlite3_open() - 특정 데이터베이스 파일을 연다. 데이터베이스 파일이 존재하지 않으면 생성한다.

- sqlite3_close() - 오픈되어 있는 데이터베이스 파일을 닫는다.

- sqlite3_prepare_v2() - 실행을 위해 SQL 문장을 준비한다.

- sqlite3_step - sqlite3_prepare_v2() 함수에 의해 준비된 SQL 문장을 실행한다.

- sqlite3_column_<type>() - SQL추출 명령에 의한 결과에서 데이터 부분을 리턴한다. <type>은 추출될 데이터의 형이다.(text, blob, bytes, int, int16 등)

- sqlite3_finalize() - 메모리에서 준비된 SQL 문장을 제거한다.

- sqlite3_exec() - sqlite3_prepare_v2(), sqlite3_step(), sqlite3_finalize()함수를 하나의 함수 호출로 대체한다.

Posted by 닉네임영역
,
EXC_BAD_ACCESS 디버깅하는 방법








출처 : http://xinics.tistory.com/entry/Xcode-4-NSZombie



Posted by 닉네임영역
,

UIDocument 클래스 - 문서와 내용을 쉽게 생성하고 관리하기 위한 방법 제공

 추상클래스이므로 UIDocument의 서브클래스를 만들고 최소한 다음 두 가지의 메소드를 오버라이   드 해야한다.

- contentsForType:error - 데이터가 파일이나 문서로 쓰여질 때 UIDocument 서브클래스에 의해 호출된다. 이 메서드는 쓰여질 데이터를 수집하고 NSData나 NSFileWrapper 오브젝트로 리턴하는 것을 담당한다.


- loadFromContents:ofType:error - 데이터가 파일이나 문서로부터 읽혀질 때 서브클래스에 의해 호출된다. 이 메서드는 UIDocument 서브클래스에 의해 파일로부터 읽혀진 내용을 전달받아 애플리케이션의 데이터 모델에 로드하는 것을 담당한다.


UIDocument 서브클래스 오브젝트의 현재 상태는 오브젝트의 documentState 속성을 통해 알 수 있다.

- UIDocumentStateNormal - 문서가 오픈되었고 사용자는 편집 할 수 있다.

- UIDocumentStateClosed - 문서는 현재 닫혀 있다. 문서를 읽는 도중 에러가 발생한 경우도 해당된다.

- UIDocumentStateInConflict - 문서에 대해 충돌이 감지되었다.

- UIDocumentStateSavingError - 문서를 저장하려 할 때 에러가 발생하였다.

- UIDocumentStateEditingDisabled - 문서가 busy 상태이며, 편집하기에 안전하지 않다.


옵저버에 UIDocumentStateChangedNotification 노티피케이션을  등록함으로써 처리 가능

Posted by 닉네임영역
,

UIPageViewController Data Source


<UIPageViewControllerDataSource>


viewControllerAfterViewController -  현재 표시되고 있는 페이지의 뷰 컨트롤러를 전달받고 다음 페이지를 표시할 뷰 컨트롤러를 리턴한다.


viewControllerBeforeViewController - 현재 표시되고 있는 페이지의 뷰 컨트롤러를 전달받고 전 페이지를 표시할 뷰 컨트롤러를 리턴한다.


페이지 컨트롤러는 수직 혹은 수평으로 뷰들을 전환 가능.

수평의 경우 - 손가락으로 실제 책의 페이지를 오른쪽으로 혹은 왼쪽으로 넘기는 것처럼 동작

수직의 경우 - 벽결이 달력의 페이지를 넘기는 것처럼 수직으로페이지가 전환


- UIPageViewControllerNavigationOrientationHorizontal

- UIPageViewControllerNavigationOrientationVertical


<UIPageViewControllerDelegate>


spineLocationForInterface - 사용자에 의해 기기가 회전할 때 스파인 위치가 바뀔수 있게 한다.

transitionComplete - 화면 기반의 제스처에 의해 페이지 전환이 끝난 후 호출 completion Handler에 의해 전환이 성공했는지 아닌지 판별 


Posted by 닉네임영역
,

pushViewController:animated - 지정한 뷰 컨트롤러를 내비게이션 컨트롤러 스택의 최상위에 위치시키고 해당하는 뷰를 사용자에게 표시한다.


popViewControllerAnimated - 내비게이션 컨트롤러 스택의 최상위의 뷰 컨트롤러를 제거함으로써 다음 뷰 컨트롤러를 현재 활성화된 컨트롤러로 만든다.


popToRootViewControllerAnimated - 내비게이션 컨트롤러 스택에서 루트 뷰 컨트롤러를 제외한 모든 뷰 컨트롤러를 제거한다.


popToViewController:animated - 지정한 뷰 컨트롤러를 만날 때까지 스택의 뷰 컨트롤러들을 제거한다. 원하는 상위 단계로 곧바로 이동하고 싶을 때 사용된다.

setViewControllers:animated - 원하는 위치의 뷰 컨트롤러로 이동할 때 사용된다.

Posted by 닉네임영역
,

NSFileManager - NSFileManager 클래스는 파일 생성, 이동, 읽기, 쓰기, 그리고 파일의 속성 읽고 설정하기와 같은 기본적인 파일과 디렉토리 작업을 할 때 사용된다. 게다가 이 클래스는 현재 작업 중인 디렉토리를 식별하는 것과 새로운 디렉토리로 변경하는 것, 그리고 디렉토리를 생성하고 디렉토리에 있는 항목들을 나열하는 작업을 위한 메서드들을 제공한다.


NSFileHandle - NSFileHandle 클래스는 파일 내에서의 특정 위치를 찾는 것과 일정 크기의 바이트 양의 파일 내용을 읽고 쓰는 것과 기존의 파일에 데이터를 추가하는 것과 같이 낮은 수준의 작업을 수행하기 위하여 제공된 클래스다.


NSData - NSData 클래스는 읽어 온 파일의 내용이나 파일에 쓸 데이터를 위하여 유용한 저장 버퍼를 제공한다.



NSFileManager *filemgr;

NSString *currentpath;


filemgr = [NSFileManager defaultManager]; 

currentpath = filemgr currentDirectoryPath]; // 현재 작업 중인 디렉토리


if([filemgr changeCurrentDirectoryPath: @"/temp/mydir"] == NO) //디렉토리 변경 실패했을 경우

NSLog(@"Cannot change directory");


currentpath = [filemgr currentDirectoryPaht];


[filemgr createDirectoryAtPath: @".tmp/mynewdir", attributes: nil]; // 새로운 디렉토리 생성


[filemgr removeItemAtPath: @"/tmp/mynewdir" error:nil ]; // 디렉토리 삭제


[filemgr movePath:@"/tmp/mynewdir" toPath: @"/tmp/mynewdir2" handle:nil]; // 디렉토리 이름 변경과 이동


NSArray *filelist;

filelist = [filemgr directoryContentsAtPath: @"/tmp"]; // 디렉토리에 있는 파일 목록 얻기


if([filemgr fileExistsAtPath: @"/tmp/myfile.txt"] == YES) // 파일이 있을 경우

     NSLog(@"File exists");


if([filemgr contentsEqualAtPath: @"/tmp/myfile.txt" andPath: @"/tmp/sales.txt"] == YES) // 두 개의 파일 내용 비교



접근 권한 - 파일 경로를 인자로 받는다

- isReadableFileAtPath:

- isWritableFileAtPath:

- isExecutableFileAtPath:

- isDeletableFileAtPath;



NSFileManager *filemgr;

NSData *databuffer;


filemgr = [NSFileManager defaultManager];


databuffer = [filemgr contentsAtPath: @"/tmp/myfile.txt"]; // 내용 담기



 NSString *homedir;

homedir = NSHomeDirectory(); // 현재사용자의 홈 디렉토리 얻기



* NSCopying 프로토콜을 사용하여 객체를 복사하면 복사한 객체의 값이 변하더라도 원본 객체의 값에는 변화가 없다.


Posted by 닉네임영역
,

NSString *aStr = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharactersSet]];

Posted by 닉네임영역
,


사랑합니다. 편안히 잠드소서