作者aureolus (Aureo)
看板MacDev
標題[問題] 排序修改NSMutableArray單一key值
時間Tue Apr 26 11:59:17 2016
假設今天宣告
NSMutableArray * arrayA2;
NSDictionary *data;
data = @{@"No.": [NSString stringWithFormat:@"%d", 3],
@"Name": [NSString stringWithFormat:@"妙蛙種子"],};
data = @{@"No.": [NSString stringWithFormat:@"%d", 1],
@"Name": [NSString stringWithFormat:@"妙蛙花"],};
[arrayA2 addObject:data];
NSLog 去看 arrayA2的內容是
{
No = "3"
name = "妙蛙種子"
}
{
No = "1"
name = "妙蛙花"
}
請問該怎麼做才能只改key"No"的值,不改"Name",讓"No"的值可以依序或倒序排列
例如
{
No = "1"
name = "妙蛙種子"
}
{
No = "3"
name = "妙蛙花"
}
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.134.2
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1461643159.A.817.html
※ 編輯: aureolus (61.228.67.125), 04/26/2016 12:39:15
1F:→ darktt: 要嘛就按順序放入array,不然就是放好後重新做排序的動作 04/26 12:56
2F:→ darktt: 呃,抱歉搞錯了,你只能安排array的資料完成後,才重新修 04/26 12:59
3F:→ darktt: 改No的值 04/26 12:59
你好,非常謝謝建議!
會這樣做是因為我Array顯示在TableView當中,且我有寫能夠Drag Drop的功能
但是拖拉項目後編號不會跟著改變,所以想請問有沒有方法能夠修正,謝謝!
※ 編輯: aureolus (60.248.134.2), 04/26/2016 13:06:49
4F:推 Blueshiva: 不過看來是針對Array裡面Data的number重新排序,所以才 04/26 13:07
5F:→ Blueshiva: 會指定成1, 3,還實在是很怪的需求 04/26 13:07
謝謝回應,因為只要是顯示在NSTableView中,要有拖拉功能
但是拖拉後項目編號不會跟著更新
※ 編輯: aureolus (60.248.134.2), 04/26/2016 13:11:57
6F:→ Esvent: 你可以用indexPath的值來顯示編號 不用存在你的資料裡面 04/26 21:56
謝謝各位幫忙,雖然這個問題很困難不過自己找到另一種方法了
for(int i =0 ; i <arrayA2.count ; i++)
{
NSDictionary *item =[arrayA2 objectAtIndex:i];
NSMutableDictionary *mutableItem = [NSMutableDictionary dictionaryWithDictionary:item];
[mutableItem setObject: [NSNumber numberWithInteger: i+1] forKey:@"No"];
[arrayA2 setObject: mutableItem atIndexedSubscript:i];
}
這樣做之後成功重新依序寫入所有NSMutableArray的值,但不是用排序的方式
不過已達成我原先的目的,謝謝大家幫忙
※ 編輯: aureolus (60.248.134.2), 04/27/2016 10:04:38