看板 MacDev 關於我們 聯絡資訊
假設今天宣告 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
darktt: 要嘛就按順序放入array,不然就是放好後重新做排序的動作 04/26 12:56
darktt: 呃,抱歉搞錯了,你只能安排array的資料完成後,才重新修 04/26 12:59
darktt: 改No的值 04/26 12:59
你好,非常謝謝建議! 會這樣做是因為我Array顯示在TableView當中,且我有寫能夠Drag Drop的功能 但是拖拉項目後編號不會跟著改變,所以想請問有沒有方法能夠修正,謝謝! ※ 編輯: aureolus (60.248.134.2), 04/26/2016 13:06:49
Blueshiva: 不過看來是針對Array裡面Data的number重新排序,所以才 04/26 13:07
Blueshiva: 會指定成1, 3,還實在是很怪的需求 04/26 13:07
謝謝回應,因為只要是顯示在NSTableView中,要有拖拉功能 但是拖拉後項目編號不會跟著更新 ※ 編輯: aureolus (60.248.134.2), 04/26/2016 13:11:57
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