2012-05-02 8 views
0

をクラッシュさせるアプリ引き起こし、それが返されます。ObjectAtIndexが

(
    hat, 
    hat 
) 

は、なぜ私が好きなのNSLogを行うときにNSLog(@"%@", [pro.matches objectAtIndex:0]);、それはエラーでクラッシュするということです。*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'

とても奇妙

私はそれを埋める場所です:

[self.matches removeAllObjects]; 

     NSArray *JSONarray = [[NSArray alloc] initWithArray:[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]]; 
     int i; 

     for (i=0; i<[JSONarray count]; i++) { 
      //[self.matches addObject:[JSONarray objectAtIndex:i]]; 
      [self.matches addObject:@"hat"]; 
     } 
     //NSLog(@"boys with bo%@", [[matches objectAtIndex:1] objectForKey:@"host"]); 
     block(); 
     //JSON and add to matches. 
    } 
    }]; 
    block(); 

と私はそれを呼び出す場所です:

[pro refreshMatchesWithCallback:^ 
    { 
     //[self.tableView reloadData]; 
     NSLog(@"the count of a lifetime is %@", [pro.matches objectAtIndex:0]); 
    }]; 
+2

を。もう少しコードを提供できますか?たとえば、配列の作成/埋め込みはどこですか? – Manuel

+2

あなたが投稿したときに配列の内容を印刷するとき、あなたの 'NSLog'呼び出しは何ですか?そして、@ dragon112のように、あなたの配列が作成されているのを見るために、より多くのコードを投稿してください。 –

+0

@michaelaどのクラスUがNSlogをプラスしているのか、どのようなソートプッシュポップを使っているのですか?また、私が考えることができるのは、クラスのプロオブジェクトに配列を設定する必要があるということです、(しかし、それはすべてのアプリケーションのsenerioにdepands) – WaaleedKhan

答えて

1

あなたが最初にそれが完了ブロックの働き方のためにでは何もしていた内容をログに記録する場合、これを試してみてください。

[pro refreshMatchesWithCallback:^ 
{ 
    //[self.tableView reloadData]; 
    if(pro.matches.count > 0) { 
     NSLog(@"the count of a lifetime is %@", [pro.matches objectAtIndex:0]); 
    } 
}]; 

はこれが役に立てば幸い!

サム・カウンタは何のチェックは

Cheerz必要ありません0より大きい場合は、このループに入ります

0
always prefer to use this approach 

for(Object* obj in arra) 
{ 
... 

} 

:これは間違っているかを確認するのに十分なコードではありませんP

関連する問題