2012-12-18 11 views
1

我有一個經常編輯TableView的NSMutableArray。我想要做的是運行一次檢查,看看TableView中的行是否與NSMutableArray中的任何數字相匹配,如果它們符合,則執行一個操作。所以,在TableView中的代碼,我有:將NSMutableArray中的數字與indexPath.row進行比較

if([thearray containsObject:indexPath.row] { 
    //perform action here 
} 

不過,我不斷收到錯誤:

Incompatible integer to pointer conversion sending 'NSInteger' (aka 'int') to parameter of type 'id'; 

什麼我做錯了,我該怎麼辦呢?

+0

做什麼,你甚至想要做的^^ –

+0

一個NSArray只能包含ObjC對象 –

回答

6

使用此代碼...

if([thearray containsObject:[NSNumber numberWithInt:indexPath.row]]) { 
    //perform action here 
} 
+0

我不知道這是OP是什麼之後; indexPath.row可能應該對應於數組的索引,而不是成員。 –

+0

啊,我想你可能是對的。 – Fogmeister

+0

你的回答很完美。只需在if語句的末尾添加括號即可。我正在做的是當選中一行TableView時,它取得該行的編號,並將其添加到存儲在NSUserDefaults中的數組中。這樣我有一個數字對應於每一行被選中。然後,我有這種方法來檢查哪些行匹配數組中的數字,所以我可以添加一個複選標記,顯示它已被訪問。 – user717452

0

我認爲你可以在這裏做的最好是檢查數組的當前計數大於indexPath.row的(因爲理論上不會有差距在索引中)。你正在調用的方法需要一個對象,並告訴你它是否是數組的成員。還有objectAtIndex:,但如果您傳遞的整數超出範圍,則會引發異常。

if(thearray.count > indexPath.row) { 
    // array has at least indexPath.row + 1 items, so you can get objectAtIndex:indexPath.row 
}