'아이폰'에 해당되는 글 3건

  1. 2013.12.08 iOS 개발자 등록
  2. 2012.07.22 xCode 4.2 에서 SQLite사용하기 (1)
  3. 2012.03.31 세로모드만 지원

iOS 개발을 위해서는 Mac 컴퓨터와 함께 개발자로 등록이 필요합니다.

(물론 해킨토시로도 가능하다고는 하지만 비추천이고요...)

 

아래 Site로 가시면

http://developer.apple.com/programs/register/

 

 1) iOS 개발자 프로그램(1년에 \119,000)

     App Store의 응용프로그램을 개인, 단독 사업자, 회사, 조직, 정부 기관 또는 교육 기관으로 배포하려면
     이 프로그램을 선택합니다.

 2) iOS 개발자 기업 프로그램(1년에 \359,000)

     회사, 조직, 정부 기관 또는 교육 기관 내에서 내부 배포용 독점 응용 프로그램을 개발하려면

     이 프로그램을 선택합니다.

 3) iOS 개발자 대학 프로그램(무료)

     학위를 수여하는 고등 교육 기관에서 교육 과정에 iOS 개발 과정을 도입하려는 경우 이 프로그램을 선택합니다.

 

이렇게 소개하고 있습니다.

저작자 표시 비영리 변경 금지
신고

'컴퓨터 활용 > 기타' 카테고리의 다른 글

맥에서 parallels 깔고 win8설치 후 인증  (0) 2014.02.25
다양한 추천 사이트 모음  (0) 2013.12.11
iOS 개발자 등록  (0) 2013.12.08
xCode 4.2 에서 SQLite사용하기  (1) 2012.07.22
win7에서 절전모드 해제  (0) 2011.11.14
아래 한글(HWP)을 PDF로 변환  (0) 2011.10.23
Posted by 천왕지짐

xCode 4.2 에서 SQLite 사용하기

   - xCode 4.2 에는 Resources 폴더가 없습니다.

     (프로젝트 선택한 후 Build-Phases탭 아래쪽의 Copy Bundle Resources에 만들어 놓은 db추가 해야 합니다.)

   - 이미 만들어져 이는 db.sqlite를 불러서 NSLog();를 통해 확인해 보는 예제입니다.

   - Document에 db.sqlite 파일 복사하는 부분 넣지 않으니까 결과가 안나오더군요...

 

//
//  AppDelegate.m
//  dbtest002
//
//  Created by ChanSeob Lee on 12. 7. 17..
//  Copyright (c) 2012년 __MyCompanyName__. All rights reserved.
//

#import "AppDelegate.h"
#import <sqlite3.h>

@implementation AppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   
    NSString *databaseName = @"db.sqlite";

    //도큐먼트 디렉토리 위치를  얻는다.
    NSString* documentDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];    
    
    //도큐먼트 위치에 db.sqlite명으로 파일패스 설정
    NSString *filePath = [documentDirectory stringByAppendingPathComponent:databaseName];

    NSFileManager *fileManager = [NSFileManager defaultManager];
   
    // 도큐먼트에 .sqlite 파일 복사
    BOOL dbexits = [fileManager fileExistsAtPath:filePath];
    if (!dbexits) 
    {
        NSString *defaultDBPath = [[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:databaseName];
        NSError *error;
       
        BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:filePath error:&error];
        if (!success) {
            NSAssert1(0,@"Failed to create writable database file with message '%@'.", [error localizedDescription]);
        }
    }    
    
    // 데이터베이스를 연결한다. 해당 위치에 데이터베이스가 없을경우에는 생성해서 연결한다.
    sqlite3 *database;
    if (sqlite3_open([filePath UTF8String], &database) != SQLITE_OK) {
       
        sqlite3_close(database);
       
        NSLog(@"Error");
    }
    
    
    // 테이블 생성
    char *sql = "CREATE TABLE IF NOT EXISTS test (no INTEGER PRIMARY KEY NOT NULL, name VARCHAR)";
   
    if (sqlite3_exec(database, sql, nil,nil,nil) != SQLITE_OK) {
       
        sqlite3_close(database);
       
        NSLog(@"Error");
    }
    
   
//    // 삽입 및 갱신
//    sqlite3_stmt *insertStatement;
//    char *insertSql = "INSERT or REPLACE INTO test (no,name) VALUES(?,?)";
//   
//    //프리페어 스테이트먼트를 사용
//    if (sqlite3_prepare_v2(database, insertSql, -1, &insertStatement, NULL) == SQLITE_OK) {
//       
//        //?에 데이터를 바인드
//        sqlite3_bind_int(insertStatement, 1, 1);
//        sqlite3_bind_text(insertStatement, 2, [@"홍길동" UTF8String],  -1, SQLITE_TRANSIENT);
//       
//        // sql문 실행
//        if (sqlite3_step(insertStatement) != SQLITE_DONE) {
//            NSLog(@"Error");
//           
//        }
//    }
    
   // select
    sqlite3_stmt *selectStatement;
   
    char *selectSql = "SELECT no, name FROM test";
   
    if (sqlite3_prepare_v2(database, selectSql, -1, &selectStatement, NULL) == SQLITE_OK) {
        
        // while문을 돌면서 각 레코드의 데이터를 받아서 출력한다.
        while (sqlite3_step(selectStatement)==SQLITE_ROW) {
            int no = sqlite3_column_int(selectStatement, 0);
            NSString *name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStatement, 1) ];
            NSLog(@"no : %i, name : %@",no,name);
        }          
    }       
    
//statement close
//    sqlite3_finalize(insertStatement);
    sqlite3_finalize(selectStatement);
    
    //db close
    sqlite3_close(database);
     
    [_window makeKeyAndVisible];
    return YES;
}


@end

저작자 표시 비영리 변경 금지
신고
Posted by 천왕지짐

xcode version 4.2.1에서 project를 만들면 처음 나오는 summary 탭에는
"Support Device Orientations"라는 항목이 있어서 지원할 모드를 정할 수 있다.
하지만 "Portrait"(세로모드)만 지원하도록 지정해도 빌드하면 옆으로 잘만 돌아간다...;;

그래서 찾아보니 코드 상으로 가로모드를 지원하지 않도록 하는 방법이 있었다.!!!

아래와 같이 .m파일에 추가해주면 된다.
 
< Portrait만 지원할 경우 >

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation <= UIInterfaceOrientationPortrait);
} 

< Portrait에 PortraitUpsideDown까지 지원할 경우 >
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation <= UIInterfaceOrientationPortraitUpsideDown);
} 
저작자 표시 비영리 변경 금지
신고
Posted by 천왕지짐