我正在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