2011-04-26 37 views
1

這是我的代碼...我的問題是我不知道如何從AppDidFinishLaunching在我的AppDelegate.m文件中調用此(checkIfDatabaseExists)。如何調用此方法? (非常新手,與Obj-C有困難的時間)

#import "SQLiteDB.h" 

static SQLiteDB *sharedSQLiteDB = nil; // makes this a singleton class 

@implementation SQLiteDB 

@synthesize db, dbPath, databaseKey; 


//-------------- check for database or create it ----------------| 
#pragma mark Singleton Methods 

+ (SQLiteDB *) sharedSQLiteDB { 

    if(!sharedSQLiteDB) { 
     sharedSQLiteDB = [[SQLiteDB alloc] init]; 
     [sharedSQLiteDB checkIfDatabaseExists]; // check to see if d/b exists 
    } 
    return sharedSQLiteDB; 
} 
+0

爲什麼要調用[sharedSQLiteDB checkIfDatabaseExists];你似乎沒有對結果做任何事情。 – MrHus 2011-04-26 17:35:34

回答

2

在你的應用程序代理文件,導入SQLiteDB.h然後調用

SQLiteDB *db = [SQLiteDB sharedSQLiteDB]; 

那是你的意思?

您將sharedSQLiteDB聲明爲類方法(即前導+符號),因此您可以在類上調用該方法(如上所述)。你對checkIfDatabaseExists的調用表明這是一個實例方法(用 - 來聲明)。

我會建議命名您的靜態SQLiteDB實例與領先的_或東西,以區別於名爲sharedSQLiteDB的方法。否則會令人困惑。

我錯過了什麼或對此有幫助嗎?

+1

不要用_作爲變量名稱的前綴,這是保留給Apple做的 – Nektarios 2011-04-26 17:39:50

+0

那麼尾部下劃線如何呢? :-)雖然好點。 – 2011-04-26 17:41:39

+0

謝謝大家......這真的幫助我走了......我感謝大家的幫助! – SpokaneDude 2011-04-26 18:41:39

2

您調用靜態消息[ClassName messageName],所以:

SQLiteDB* sdb = [SQLiteDB sharedSQLiteDB];