본문 바로가기

Programming Language/Objective-C

Objective-C에서 SQLite 사용 예제 Objective-C에서 SQLite 사용 예제 1-1. 헤더 추가하기 Objective-C에서 SQLite를 사용하려면, 다음과 같이 헤더 파일을 추가한다. Xcode 프로젝트를 새로 생성한 후, 아무 라이브러리도 추가하지 않은 상태이다. #import 1-2. SQLite의 객체 SQLite의 사용을 지원하는 객체에는, 데이터베이스 연결 정보를 가지고 있는 sqlite3와, SQL 구문을 데이터베이스로 전송하기 전 컴파일을 하는 sqlite3_stmt 객체가 있다. 각 형식을 갖는 두 객체를 선언한다. // ... sqlite3 * database; // 데이터베이스 연결정보 sqlite3_stmt * databaseStatement; // 쿼리 구문 컴파일러 //... 1-3. SQLite 데이터베.. 더보기
이벤트 처리시 멤버에 들어간 배열 접근에서 EXC_BAD_ACCESS 오류가 뜰 경우 다음과 같이 버튼 하나 있고 내부적으로 배열을 가지고 있는 창이 하나 있다고 가정합니다. 버튼을 클릭하면 button_Click 메서드가 실행됩니다. // TestDelegate.h #import @interface TestDelegate : NSObject { NSArray * array; NSWindow * window; NSButton * button; } @property (nonatimic, retain) NSArray * array; @property (assign) IBOutlet NSWindow * window; @property (nonatomic, retain) IBOutlet NSButton * button; - (IBAction) button_Click: (NSButton *) se.. 더보기
NSDate로 현재 날짜 얻기 NSDate: 어떤 기준일로부터의 경과 시점을 나타내는 클래스입니다. 기준일이 언제인지는 이 클래스만으로 알 수 없습니다. NSCalendar: 특정 지역에서 사용하는 달력을 나타냅니다. 이 클래스는 달력의 기준일, 1년당 날 수 계산 및 1달당 일 수 계산과 같은 역할을 수행할 수 있습니다. NSDateComponents:NSCalendar에서 제공하는 역법과 NSDate에서 제공하는 기준일로부터의 시점을 사용하여 연, 월, 일, 시, 분, 초의 시각 요소를 추출합니다. 반대로 지정된 시각 요소와 NSCalendar에서 제공하는 역법을 사용해 NSDate 클래스의 인스턴스를 합성하기도 합니다. NSDateComponents에서 지원하는 날짜 및 시각 요소는 다음과 같습니다. 자료형은 NSCalendar.. 더보기
NSString과 C 문자열간 변환하기 Foundation에서 제공하는 NSString 문자열을 C 문자열로 변환하기 위해서는 -cStringUsingEncoding: 메시지를 사용하면 된다. 반대로 C 문자열을 NSString로 변환하여 쓰기 위해서는 +stringWithCString:encoding:을 사용한다. 메시지 원형- (const char *) cStringUsingEncoding : (NSStringEncoding) encoding+ (id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc encodingconst char * 형 버퍼가 갖는 데이터의 인코딩 종류를 지정한다. (아래 참조) 사용 예#import #import #import #import.. 더보기
Objective-C 첫 예제 모든 프로그래밍이 그러하듯 텍스트 출력부터. Objective-C의 헤더 파일 확장명은 .h이고, 소스 파일 확장명은 .m이다.test.m#import int main(int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog(@"tapitolife\n"); NSLog(@"http://tapito.tistory.com/\n"); NSLog(@"Hello, World!"); [pool drain]; return 0; } 더보기