简体   繁体   English

如何在 swift 中使用 NSNumber 和 Int 在循环中使用

[英]how to use for in loop using NSNumber and Int in swift

I am new in swift and I am not able to get value for array my array is like this我是 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"
)

My code is like this我的代码是这样的

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

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

But when I am trying to get value from array it show me error as但是当我试图从数组中获取值时,它显示我的错误为

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

Can someone please tell me what I am doing wrong有人可以告诉我我做错了什么吗

if you want the index for each element along with its value, you can use the enumerated() method to iterate over the array.如果您想要每个元素的索引及其值,您可以使用enumerated()方法遍历数组。

It returns a sequence of pairs (index, element), where index represents a consecutive integer starting at zero and element represents an element of the sequence.它返回一个对 (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)")

    }

// initialize data array and return it var data = String // 初始化数据数组并返回它 var data = String

    let formatter = NSNumberFormatter()
    formatter.numberStyle = .SpellOutStyle

    for var i = 0; i < 3; i++ {
        let number = NSNumber.init(integer: i)
        data.append(formatter.stringFromNumber(number)!)
    }

Although the problem has been solved, but I want to tell you in your code the 'bannerurl' in the loop is the element.虽然问题已经解决了,但是我想在你的代码中告诉你循环中的'bannerurl'是元素。 Maybe you should know that.也许你应该知道。

Swift4 You can also use :- Swift4您还可以使用:-

for i in 0..<self.bannerarr.count{
    print("\(i) \(self.bannerarr[i])")
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM