2016-06-23 63 views
2

簡單的問題,但經過幾個小時的搜索和數百頭髮丟失後,我無法找到在Swift中獲取NSMutableArray中元素索引的方法。如何獲取Swift中NSMutableArray中元素的索引?

如果有人知道如何做或解決方法,請幫助我。

我試圖

var pagerViewControllers = [UIViewController] 
... 
let viewControllerIndex = pagerViewControllers.indexOfObject(viewController) 

[編輯]

只是爲了避免混淆,併爲那些downvoting用於具有indexOf方法的問題,NSArray。該方法在NSArray中被替換爲indexOfObject,但對於NSMUtableArray,您仍然可以使用indexOf [現在的工作方式爲]。實際上,上面顯示的行會引發錯誤,即使父級NSArray確實有indexOfObject

如果這是你第一次在Swift中處理數組,那麼這個事情會讓你非常困惑,事實就是如此。在對這個問題的回答和評論中,你會看到這種混亂反映出來,所以我認爲這個問題對於向其他人澄清是有價值的,並且選擇了正確的答案。

[編輯]

+2

您是否嘗試過'let indexof = yourarray.indexOf(「a」)' –

+1

該文檔不會列出已由超類提供的內容。 –

+0

'indexOfObject'是一個有效的方法。 – Code

回答

5

對於元素在NSMutableArray你有,你想獲得索引,以便試試下面的小代碼,並保存剩餘的頭髮笑

let indexof = yourarray.indexOf("a") 

的對象越來越指數定義陣列等:

var myarray = [String]() 

做代碼等:

 myarray = ["nitin" , "nitin2"] 
     // let index = myarray.indexOf("nitin") 

     if let index = myarray.indexOf("nitin") 
     { 
      print("indexis = \(index)") 
     } 
+0

等會給你樣品演示 –

+0

是的,你會救我剩餘的頭髮,哈哈。 – reydelleon

+0

'indexOf'不是'NSMutableArray'的方法。 – Code

2

你需要嘗試的NSMutableArray這種方法,但如果您使用我推薦使用Array代替NSMutableArray

let index = arr.indexOfObject("A"); 

希望這將幫助你

+0

嘿,我必須使用MutableArray,它沒有indexOfObject方法。 – reydelleon

+0

此方法存在。我已經在使用它。 –

+0

你使用的數組是Swift數組而不是NSMutableArray。請檢查您創建的內容。 –

2
int i; 
for (i = 0; i < [myArray count]; i++) { 
    id myArrayElement = [myArray objectAtIndex:i]; 
...do after find your exact Element 
} 

可以遍歷的NSMutableArray和找到特定對象的位置使用

int indexValue = [yourArray indexOfObject:yourObject]; 
相關問題