2012-03-15 7 views
0

「互換性のないポインタ型」について警告NR同じを持っています。NRとしてpropertysのテーブル内の列の...ので、それはそこに問題になることはありません)sqlite3のは、私が</p> <p>は何私はここでやりたいこと(カスタムオブジェクトにオブジェクトをデータベース行を取得することですSQLiteの(3時間)することはかなり新しいです

だから、これは私のコードです:。

#import <Foundation/Foundation.h> 
#import "/usr/include/sqlite3.h" 
#import "Headers.h" 
@interface DataDb : NSObject{ 
sqlite3 *database; 
} 

+(DataDb*)database; 
+(Singleton*)getSgForIndex:(int)index; 

@end 





#import "DataDb.h" 

@implementation DataDb 

static DataDb *database; 


+(DataDb*)database 
{ 
    if(database==nil){ 
     database=[[DataDb alloc]init]; 
    } 
    return database; 
} 


-(id)init{ 
    if(self=[super init]){ 
     NSString *sqliteDb =[[NSBundle mainBundle] pathForResource:@"Data" ofType:@"sqlite3"]; 

     if(sqlite3_open([sqliteDb UTF8String], &database) !=SQLITE_OK){ 
      NSLog(@"Failed to open database!"); 
      return nil; 
     } 

    } 
    return self; 
} 


+(Singleton*)getSgForIndex:(int)index{ 

    Singleton *returnSingleton =[[[Singleton alloc]init]autorelease]; 
    NSString *query =[NSString stringWithFormat:@"SELECT * FROM Quiz WHERE Q_Id=%i",index]; 
    sqlite3_stmt *statement; 

    if (sqlite3_prepare_v2(database,[query UTF8String], -1, &statement, NULL)==SQLITE_OK) { 
     NSLog (@"Works!"); 
     /* 
     ...code... 
     */ 

     sqlite3_finalize(statement); 
    }else{ 
     NSLog(@"Failed!!"); 
    } 


    return returnSingleton; 
} 


-(void)dealloc{ 
    sqlite3_close(database); 
    [super dealloc]; 
} 
@end 

は、コンパイラは、次のを持って..and sqlite3_prepare_v2関数の問題:

「* sqlite3の」タイプのパラメータに「DataDbを*」渡す

互換性のないポインタ型(別名「構造体sqlite3の*」)

公正であるために...コードは、私が見つけたサンプルコードの修正版ですが、それ問題の男のために働いて、私はなぜそれが私のために働かないのか分かりません

+0

私はどのチュートリアルを使用しているのかを教えてください – Hector

答えて

0

getSgForIndexはインスタンスではなくクラスメソッドとして宣言しているので、データベースへの参照はstatic DataDb *databasesqlite3 *databaseが必要です。 getSgForIndexをクラスメソッドではなくインスタンスメソッドにする必要があります。 (また、両方のデータベースを混乱を減らすのに役立てるためにデータベースと呼んではいけないかもしれません)

+0

最終的に...ありがとう – skytz

関連する問題