是否有任何方法可以在NSMutableArray中隨機播放特殊套件?在NSMutableArray中隨機播放特殊套件
例如,這是我的NSMutableArray:
self.resultsdict : (
{
Id = 261496;
packID = 1057;
title = "cat"
},
{
Id = 261497;
packID = 1057;
title = "dog"
},
{
Id = 261498;
packID = 1057;
title = "fish"
},
{
Id = 261499;
packID = 1059;
title = "donkey"
},
{
Id = 261500;
packID = 1060;
title = "cow"
},
現在我想在清單上洗牌與 「packID = 1057」 項目。還有其他項目應該用
正常順序。
輸出標題應該是:貓,狗,魚] < - 以隨機順序,其餘[驢,牛]
正常的順序。
我可以洗這個代碼的所有列表,但有什麼辦法來修改它以上提出?
for (int x = 0; x < [self.resultsdict count]; x++) {
int randInt = (arc4random() % ([self.resultsdict count] - x)) + x;
[self.resultsdict exchangeObjectAtIndex:x withObjectAtIndex:randInt];
}
一個解決方案,我發現是做兩個NSMutableArray裏,一個洗牌,另一個用於
正常秩序和洗牌後,我將它們與addObjectsFromArray合併。
但是這種解決方案是有點難以用於多個混洗表,如下所示:
self.resultsdict : (
{
Id = 261496;
packID = 1057;
title = "cat"
},
{
Id = 261497;
packID = 1057;
title = "dog"
},
{
Id = 261498;
packID = 1057;
title = "fish"
},
{
Id = 261499;
packID = 1059;
title = "donkey"
},
{
Id = 261500;
packID = 1060;
title = "cow"
},
{
Id = 261501;
packID = 1060;
title = "AyeAye"
},
用以下條件=> 「packID = 1057」 和 「packID = 1060」
和下面的輸出:
[貓,狗,魚] < - 隨機順序+ [驢] + [牛,aye aye] < - 隨機順序。
更多信息:
程序,使查詢與輸精管PackID測試。
SELECT * FROM tests WHERE packID IN ("1057","1059","1060")
查詢的結果將被插入到 「self.resultsdict」
FMResultSet *results_packs = [db executeQuery:sql];
while([results_packs next])
{
[self.resultsdict addObject:[results_packs resultDictionary]];
}
用戶具有用於測試查詢的混洗能力。例如他/她可以選擇顯示「1057」,「1060」和「1059」的訂購版本的洗牌版本
。
現在我想要做的就是修改我的正常洗牌代碼接受的條件數組,每一樣下列鍵洗牌
項目(「1057」,「1060」)。
感謝在前進
這是一個算法和任務的主體,很難與iOS或Obj-C相關。你的任務不是具體的,ID = 1057的對象是什麼,它們位於列表的末尾,還是隨機傳播,結果是什麼?它們是否應該混合在「1057」之中,還是應該對每組這樣的物品進行洗牌? – Gobra 2014-12-06 08:24:32
你的權利,我會盡快更新我的問題。 – 2014-12-06 08:26:08