2016-07-28 11 views
1

ユーザーが検索ボタンをクリックすると、配列が埋められます。その応答のデータがない場合、サーバーは空の応答を返します。したがって、空の配列です。私は疑問に思っています。なぜ私が偽の要求を発したときに返すのですか?EXC_BAD_ACCESS (code=1, address = 0xa)テーブルビューで悪いアクセスがあった - iOS

それは指し示す:ラインへ

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

    if (_arrValues.count > 0) 
     return self.arrValues.count; 

    return 0; 
} 

を:

私はそのような配列の割り当てなかった viewDidLoad
if (_arrValues.count > 0) 

:この問題が発生した理由をそう

_arrValues = @[]; 

を、私は理解してカント。助言がありますか?
デバッガでは、単に配列メモリとISAポインタを出力しますが、ユーザー検索の偽の要求が何も返されなければ、データは存在しません。デバッグパネルから

enter image description here

私は私のサーバーの一部がそのように更新(応答を削除して、常に空の配列を作成します)、問題が消えています。おそらく私の要求/マッピング部分に問題があります:

// _arrValues = [eventsMgr getEventsFromResponse:x]; 
     _arrValues = @[]; 
+0

を使用して、完全なクラッシュログを表示します。 – Droppy

+2

おそらく '_arrValues'はしばらくの間は' nil'です。あなたはゼロのチェックをする必要はなく、 'return self.arrValues.count;'を返すだけです。 – vadian

+0

@Droppyどのようなexacltyを表示する必要がありますか? –

答えて

1

は、このコード

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [_arrValues count]; 
} 
+0

単に 'return [_arrValues count];'が動作します。 – Droppy

+0

@Droppy戻り値[_arrValues count];私はエラーが発生する前に。また、テーブルが最初にロードされたときに空のときにクラッシュが発生しない理由を知りたいので、[_arrValues count]を返します。作業。 –

+0

@EvgeniyKlebanこれは、「メッセージを送信していない」Objective-Cは「ノーオペレーション」なので、この場合は理想的な「0」を返します。あなたのエラーは他にありますが、あなたのコードに何も問題はありません。 – Droppy

関連する問題