[問題] 排序修改NSMutableArray單一key值

看板MacDev作者 (Aureo)時間9年前 (2016/04/26 11:59), 9年前編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
假設今天宣告 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://www.ptt.cc/bbs/MacDev/M.1461643159.A.817.html ※ 編輯: aureolus (61.228.67.125), 04/26/2016 12:39:15

04/26 12:56, , 1F
要嘛就按順序放入array,不然就是放好後重新做排序的動作
04/26 12:56, 1F

04/26 12:59, , 2F
呃,抱歉搞錯了,你只能安排array的資料完成後,才重新修
04/26 12:59, 2F

04/26 12:59, , 3F
改No的值
04/26 12:59, 3F
你好,非常謝謝建議! 會這樣做是因為我Array顯示在TableView當中,且我有寫能夠Drag Drop的功能 但是拖拉項目後編號不會跟著改變,所以想請問有沒有方法能夠修正,謝謝! ※ 編輯: aureolus (60.248.134.2), 04/26/2016 13:06:49

04/26 13:07, , 4F
不過看來是針對Array裡面Data的number重新排序,所以才
04/26 13:07, 4F

04/26 13:07, , 5F
會指定成1, 3,還實在是很怪的需求
04/26 13:07, 5F
謝謝回應,因為只要是顯示在NSTableView中,要有拖拉功能 但是拖拉後項目編號不會跟著更新 ※ 編輯: aureolus (60.248.134.2), 04/26/2016 13:11:57

04/26 21:56, , 6F
你可以用indexPath的值來顯示編號 不用存在你的資料裡面
04/26 21:56, 6F
謝謝各位幫忙,雖然這個問題很困難不過自己找到另一種方法了 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
文章代碼(AID): #1N7kUNWN (MacDev)
文章代碼(AID): #1N7kUNWN (MacDev)