首页 > 解决方案 > 如何在 swift 中使用 NSNumber 和 Int 在循环中使用 for

问题描述

我是 swift 的新手,我无法获得数组的价值我的数组是这样的

(
    "http://ivs.upetch.com/tpaf/storage/uploads/banner/15762295031269.jpg",
    "http://ivs.upetch.com/tpaf/storage/uploads/banner/15762294973128.jpg",
    "http://ivs.upetch.com/tpaf/storage/uploads/banner/15762294928909.jpg"
)

我的代码是这样的

    self.bannerarr = bannerdata as! NSArray
    print(self.bannerarr)

    for bannerurl in self.bannerarr{
    let stringbanner = self.bannerarr .object(at: bannerurl as! Int)
    print(stringbanner)
}

但是当我试图从数组中获取值时,它会显示错误为

Could not cast value of type '__NSCFString' (0x1084207a0) to 'NSNumber' (0x10493ed40).

有人可以告诉我我做错了什么吗

标签: iosswiftfor-in-loop

解决方案


如果您想要每个元素的索引及其值,则可以使用该enumerated()方法遍历数组。

它返回对 (index, element) 的序列,其中 index 表示从零开始的连续整数, element 表示序列的一个元素。

  let bannerarr = ["http://ivs.upetch.com/tpaf/storage/uploads/banner/15762295031269.jpg",
    "http://ivs.upetch.com/tpaf/storage/uploads/banner/15762294973128.jpg",
    "http://ivs.upetch.com/tpaf/storage/uploads/banner/15762294928909.jpg"]

    // use your iteration as like
    for (index, element) in bannerarr.enumerated() {
      print("get Index \(index): getString \(element)")

    }

推荐阅读