2011-07-10 10 views
0

ここでもXcode newbここに...私のアイテム(コードは表示されませんがリストクエリとほとんど同じです)とリスト配列を取得してデータやカウントを表示するのに問題があります。 Dbaseの実装ファイルでは配列を出力できますが、UWLAppDelegateでは何も得られません。私はここでこの問題の例を見てきましたが、問題を解決していないようです。参考までに、プレビューXcodeも使用しています。だから、いくつかのものは正しく見えないかもしれません。配列はnullです。 NSObjectからAppDelegateにプッシュする

私はここで説明するように初期化しようとしたチュートリアルました:

NSMutableArray *tempArray = [[NSMutableArray alloc] init]; 
self.listArray = tempArray; 

...まだありませんサイコロ。

UWLAppDelegate.m 

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
[self copyDatabase]; 

self.itemArray = [NSMutableArray array]; 
self.listArray = [NSMutableArray array]; 

NSLog(@"Items Array: %@",self.itemArray); 
NSLog(@"List Array: %@",self.listArray); 

[Dbase getDisplayData:[self getDBPath]]; 
[Dbase getListDisplayData:[self getDBPath]]; 
} 

..

dbase.m 

+ (void) getListDisplayData:(NSString *)dbPath { 
UWLAppDelegate *appDelegate = (UWLAppDelegate *)[[UIApplication sharedApplication] delegate]; 
if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK){ 
    const char *sql = "select id, name from lists"; 
    sqlite3_stmt *selectstmt; 
    if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK){ 
     while(sqlite3_step(selectstmt) == SQLITE_ROW){ 
      NSInteger primaryKey = sqlite3_column_int(selectstmt, 0); 
      Dbase *listObj = [[Dbase alloc] initWithPrimaryKey:primaryKey]; 
      listObj.dblistname = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)]; 

      listObj.isDirty = NO; 

      [appDelegate.listArray addObject:listObj.dblistname]; 
     } 
     //NSLog(@"%@",appDelegate.listArray); 
     //NSLog(@"%d", [appDelegate.listArray count]); 
    } 
} else { 
    sqlite3_close(database); 
} 
} 

ので、コメントのNSLogのは、データ私はアプリから作られたすべての6つのentires /行を掲載します。アイデア?

Objective-C appDelegate array < - いずれも助けませんでした。私は役に立たない他の同様の質問を見た。アイデア?

+0

あなたのアプリをデバッグしましたか? –

+0

なぜアプリケーションを使用していないのですか?didFinishLaunchingWithOptions:? (のUIApplication *)アプリケーションdidFinishLaunchingWithOptions:(NSDictionaryの*)launchOptions {} 私はそれが任意の差を作り、それはdoesntの場合、それが参照するように変更 - (BOOL)アプリケーション を: – thelaws

+0

がよく、デフォルトでは使用します。 – xTHENKx

答えて

0

率直に問題はないようです。それはちょうど間違った順序で印刷することの問題のようです。データを収集する前にNSLogがあります。これは、配列がDbaseのメソッドで印刷している間、あなたのアプリデリゲートメソッドで空である理由のようです。

すべきではありませんか?

self.itemArray = [NSMutableArray array]; 
self.listArray = [NSMutableArray array]; 

[Dbase getDisplayData:[self getDBPath]]; 
[Dbase getListDisplayData:[self getDBPath]]; 

NSLog(@"Items Array: %@",self.itemArray); 
NSLog(@"List Array: %@",self.listArray); 
+0

これらはまだ空です。 :) –

+0

@WTPあなたは精巧にできますか? –

+0

アイテムが追加されることはありません。 –

関連する問題