我正在swift 3.0中的一个项目中,我有一个元组数组来存储数据集。一旦我保存它们,我将这个元组数组转换为一个NSArray,然后使用另一个函数对该数组中的元素(对象)进行混洗。我的要求是访问这个重新调整的数组(NSArray)中的元素。我的代码如下(请阅读更好的理解意见)。从元组中访问一个元素NSArray
这是我的数据保存到我的元组
var savedSongsArray:[(title:String,healerName:String,trackUrl:URL,imageUrl: String)] = []
func getAllTracksFromSavedPath(){
for i in 0 ..< trackIdsArray.count{
savedSongsArray.append((title: songDetailsArray[i].title , healerName:songDetailsArray[i].healerName, trackUrl: uRL, imageUrl: songDetailsArray[i].imageUrl))
//savedSongsArray is my tuple array
}
let arrayToBeShuffled = savedSongsArray as NSArray // This is where I convert it to a NSArray
}
我的随机播放功能
func shuffledSongsArray(array:NSArray) -> NSArray {
let mutableArray = array.mutableCopy() as! NSMutableArray
let count = mutableArray.count
if count>1 {
for i in ((0 + 1)...count-1).reversed(){
mutableArray.exchangeObject(at: i, withObjectAt: Int(arc4random_uniform(UInt32(i+1))))
}
}
return mutableArray as NSArray
}
一旦我打印mutableArray的结果,其作为波纹管
("indika - (index.jpeg)", "Steven Flemin", file:///Users/auxenta/Library/Developer/CoreSimulator/Devices/2B4EB1F8-FA38-4777-A274-10979F6EEB6F/data/Containers/Data/Application/CAB78797-8AB2-4DD9-8322-6F88B454BA74/Documents/5746821397741568.mp3, "https://storage.googleapis.com/feisty-beacon-159305.appspot.com/images.png")
如何我可以访问这个元组NSArray中的单个元素?
你能解释一下你的要求,因为无法理解你的问题。 – KKRocks
如果你能看到我的代码的底部,我粘贴了我洗过数组后得到的结果。我的要求是访问每个这些元素并分配给属性,正如我在 – danu
下面提到的那样。为什么在这里使用'NSArray'?你扔掉类型信息。你的混洗功能将会更好地放在'MutableCollection'的扩展中,比较[我如何在Swift中对数组进行混洗?](https://stackoverflow.com/q/24026510/2976878)。你也许想在你的数组中使用实际的'struct'而不是元组。元组只能用于短期数据存储。 – Hamish