如何在Swift中获取NSMutableArray中元素的索引?

3

这是一个简单的问题,但我在搜索了几个小时并掉了几百根头发后,仍然找不到在Swift中获取NSMutableArray元素索引的方法。

如果有人知道如何做或者有其他解决方法,请帮帮我。

我尝试过

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

[编辑]

为了避免混淆,对于那些反对这个问题的人,NSArray曾经有一个indexOf方法。该方法被NSArray中的indexOfObject方法取代,但您仍然可以在NSMUtableArray中使用indexOf [现在它是有效的]。实际上,即使父类NSArray具有indexOfObject,上面显示的行也会抛出错误。

如果这是您第一次在Swift中使用数组,则整个过程可能会让人感到非常困惑,在此问题的答案和评论中,您将看到这种混淆反映在各个方面,因此我认为这个问题对于向其他人澄清是有价值的,并且已选择正确的答案。

[编辑]


2
你尝试过 let indexof = yourarray.indexOf("a") 吗? - Nitin Gohel
1
文档不会列出已由超类提供的内容。 - Cezary Wojcik
indexOfObject 是一个有效的方法。 - Code
你试过我的答案了吗? - Nirav D
3个回答

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)")
        }

等待将为您提供示例演示。 - Nitin Gohel
indexOf 不是 NSMutableArray 的一个方法。 - Code
那是一个Array而不是NSMutableArray - Code
@code 请查看:http://www.tutorialspoint.com/swift/swift_arrays.htm,其中没有像Objective-C可变定义的东西。 - Nitin Gohel
@NitinGohel 这个问题是关于 NSMutableArray 的。https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/index.html#//apple_ref/swift/cl/c:objc(cs)NSMutableArray - Code
显示剩余6条评论

2

你需要尝试这个NSMutableArray方法,但如果你使用的是i,我建议使用Array代替NSMutableArray

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

希望这能帮到你


嘿,我必须使用MutableArray,但它没有indexOfObject方法。 - Reydel Leon
你正在使用的数组是 Swift 的 Array 而不是 NSMutableArray。请检查你所创建的内容。 - Nirav D
1
我认为你需要阅读有关NSMutableArrayArray的Swift文档。先阅读文档,然后再开始编码。 - Nirav D

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];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接