ios2012. 10. 31. 16:37

UIViewController _loadViewFromNibNamed:bundle:] loaded the "MemberController" nib but the view outlet was not set.

:view Outlet을 연결하지 않아서 발생하는 문제입니다.

뷰 연결하시면 문제해결 




'ios' 카테고리의 다른 글

mac에서 사용할수 있는 UML 툴  (0) 2012.11.25
APXML 사용법  (0) 2012.11.22
info.pList  (0) 2012.10.28
IPhone Error 메세지  (0) 2012.10.28
@autoreleasepool  (0) 2012.10.24
Posted by NeverTry
DataBase/SQLite2012. 10. 29. 11:28

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



펌 : [http://keechanfa.tistory.com/entry/xCode-42-%EC%97%90%EC%84%9C-SQLite%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0]

'DataBase > SQLite' 카테고리의 다른 글

SQLite 받는 곳  (0) 2012.08.30
Posted by NeverTry
ios2012. 10. 28. 14:51

아이폰 어플리케이션의 기본정보.
어플리케이션을 사용하는데 있어서 필요한 기본정보는 어떤것이 있을까? 우선은 어플리케이션의 이름을 포함할 수 있다. 애플리케이션의 이름이 없다는 것은 내가 좋아하는 사람을 앞에두고도 이름을 몰라서 부르지 못하는 것과 같은 느낌일 것이다. 또한 애플리케이션을 대표하는 아이콘, 맨 처음으로 보여지는 기본 화면, 다양한 부가 기능을 어떻게 사요하는가 등이 있을 수 있다.


Info.pList 파일
모든 아이폰 애플리케이션에는 Info-pList 파일을 가지고 있다. Info-pList 파일은 Resources 폴더에서 '프로젝트명-Info-pList' 란 이름으로 되어 있을 것을 찾을 수 있다.


그림1. Info-pList 파일

기본적으로 12개의 항목의 정보를 포함하고 있다. 이들은 데이터를 구분하기 위한 키 값과, 실제적인 데이터가 들어가는 값으로 구분되어 있다. 이중에서 필요한 정보를 추가하거나, 삭제및 수정이 가능하다. 항목을 추가하기 위해서는 오른쪽에 있는 탭 부분을 클릭하면 된다. Info.pList 에서 사용가능한 기본정보 항목은 다음과 같다.

Application requires iPhone environment : 실행 가능한 아이폰 환경
Application users Wi-Fi : Wi-Fi 사용여부
Bundle creator OS Type code : 애플리케이션 개발자의 OS 코드
Bundle display name : 애플리케이션 아이콘에 나타나는 이름
Bundle identifier : 애플리케이션의 고유 식별자
Bundle name : 애플리케이션의 실제 이름
Bundle OS Type code : 애플리케이션 실행 OS 코드
Bundle version : 애플리케이션의 버전
Bundle version string. short : 구체적인 애플리케이션의 버전
Executable architectures : -
Executable file : 실행 가능한 파일
Get Info string : -
Icon already includes gloss and bevel effects : 아이콘 표시 효과 설정
Icon file : 아이콘 파일
Initial interface orientation : 기본 화면의 가로/세로형 설정
Localization native development region : -
Localized resources can be mixed : -
Main nib file base name : 기본 nib 파일
Renders with edge antialisasing : 안티앨리어싱 사용 설정
Renders with group opacity : 투명도 사용 설정
Required device capabilities : 사용가능한 장치를 설정
Status bar is initially hidden : 상태바를 표시 설정
Status bar style : 상태바 스타일 설정
Supported external accessory protocols : 확장 프로토콜 사용 설정
Upgrade other bundle identifier : 업그레이드를 위한 식별자
URL types : 커스텀 URL 사용 설정

애플리케이션의 기본정보는 자신의 개발하고 있는 프로젝트 상황에 맞추어 설정하도록 한다. 특히 'Required device capabilities' 의 항목은 다음과 같다.

telephony : 전화 통화가 가능해야 한다.
sms : 문자 기능을 필요하다.
still-camera : 카메라 장치가 있어야 한다.
auto-focus-camera : 자동 초점 기능을 사용해야 한다.
video-camera : 비디오 녹화가 가능해야 한다.
wifi : WiFi 를 사용해야 한다.
accelerometer : 가속도계를 사용한다.
location-services : 현재 위치를 제공하는 위치 서비스를 사용한다.
gps : GPS 기능을 사용한다.
magnetometer : 나침반 기능을 사용한다.
microphone : 마이크를 사용한다.
opengles-1 : OpenGL ES 1.1 을 사용한다.
opengles-2 : OpenGL ES 2.0 을 사용한다.


애플리케이션의 기본 설정은 사용자의 애플리케이션에 대한 신뢰와도 연결된다. 정확한 정보를 사용자에게 제공했을 때만이 사용자의 원망을 받는 일은 발생하지 않을 것이다.


펌 : [http://devist.tistory.com/75]

'ios' 카테고리의 다른 글

APXML 사용법  (0) 2012.11.22
nib but the view outlet was not set.  (0) 2012.10.31
IPhone Error 메세지  (0) 2012.10.28
@autoreleasepool  (0) 2012.10.24
objective c 용어  (1) 2012.10.24
Posted by NeverTry