說我有兩個數組,一個代表另一個數組的期望順序。我希望能夠將順序應用到數組。根據另一個數組重新排序NSMutableArray
我的推理是這樣的。我的應用程序包含一個可以混洗的播放列表,我希望能夠存儲混合索引,以防用戶稍後繼續播放某個播放列表。所以,兩個主要的要求是我需要能夠在混洗列表中提取原始播放列表的索引,並且稍後能夠將這些索引重新應用到原始播放列表以重新生成完全相同的混洗列表(我的混洗方法是隨機的,每次都會有所不同)。
這是我的天真做法。我的主要問題是,什麼是最有效的方法來做到這一點,什麼是最好的方式來存儲「訂單」數組 - 顯然使用一系列NSNumbers是不高效的,但我仍然是一個業餘愛好者,而不是知道如何做得更好。
NSMutableArray *anArray = @[@"this",@"is",@"an",@"array"];
NSArray *numberArray = @[@(1),@(0),@(2),@(3)];
anArray = [self applyOrder:numberArray toArray:anArray];
NSLog(@"%@",anArray);
-(NSMutableArray*)applyOrder:(NSArray *)order toArray:(NSArray *)array
{
NSMutableArray *newArray = [NSMutableArray array];
for(int i =0;i<order.count;i++)
{
[newArray addObject:[array objectAtIndex:[[order objectAtIndex:i]integerValue]]];
}
return newArray;
}
不是問題的答案,但是您可以通過編寫'@(theNumber)'來編寫'NSNumber'作爲文字,並且您可以使用'@ [@「this」,@「來編寫一個'NSArray'作爲文字。是「,@」an「,@」array「];'也不需要'nil'終止數組。 –
方便的提示!謝謝! – JoshDG