2011-08-16 70 views
0

編輯:的Objective-C - >刪除最後一個元素的NSDictionary

驗證碼:問題

- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
    NSData *responseData = [request responseData]; 
    NSString *json = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
    NSDictionary *qs = [json objectFromJSONString]; 
    self.questions = qs; 
    NSLog(@"%@", questions); 
    [json release]; 
    [self setQuestions]; 
    [load fadeOut:load.view withDuration:0.7 andWait:0]; 
    UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Start" style:UIBarButtonItemStylePlain target:self action:@selector(start:)];   
    self.navigationItem.rightBarButtonItem = anotherButton; 
} 

我有一個NSDictionary以下項目

//商店詞典:

(
    { 
     max = 120; 
     min = 30; 
     question = "Morning Bodyweight (Kg)"; 
     questionId = 1; 
     questionNumber = 1; 
     sectionId = 1; 
     type = TextInput; 
    }, 
    { 
     question = "Morning Urine Colour"; 
     questionId = 2; 
     questionNumber = 2; 
     sectionId = 1; 
     type = ImagePicker; 
    }, 
    { 
     max = 120; 
     min = 30; 
     question = "Evening Bodyweight (Kg)"; 
     questionId = 3; 
     questionNumber = 3; 
     sectionId = 1; 
     type = TextInput; 
    }, 
    { 
     question = "Evening Urine Colour"; 
     questionId = 4; 
     questionNumber = 4; 
     sectionId = 1; 
     type = ImagePicker; 
    }, 
    { 
     max = 90; 
     min = 40; 
     question = "Morning Heart Rate (BPM)"; 
     questionId = 5; 
     questionNumber = 5; 
     sectionId = 1; 
     type = TextInput; 
    }, 
    { 
     question = "Time of Month (TOM)"; 
     questionId = 6; 
     questionNumber = 6; 
     sectionId = 1; 
     type = Option; 
    } 
) 

我想刪除最後一個元素:

{ 
     question = "Time of Month (TOM)"; 
     questionId = 6; 
     questionNumber = 6; 
     sectionId = 1; 
     type = Option; 
    } 

是否存在與NSDictionary相當的pop()?如果不是如何去除最後一個元素?

+0

看起來像是一個數組的nsdictionaries,是否正確? –

+0

是這些對象數組嗎?如果是這樣,你總是可以刪除最後一個元如果他們是對象的字典,並且對象具有所有這些字段。關鍵是什麼?時間戳? – user281300

+0

它是一個數據庫元組的字符串..我使用jsonkit來反序列化json字符串並將其分配給nsdictionary。代碼在上面。 nslog輸出上面的nsdictionary – user559142

回答

2

這看起來是(或可以做成)一個字典數組。如果您將這些字典作爲NSMutableArray的對象,則可以使用– removeLastObject。否則,你是SOL,因爲即使NSMutableDictionary也沒有這樣的方法。

+0

如何將nsdictionary轉換爲數組刪除最後一個對象然後再轉換回字典? – user559142

+0

@ user559142:這看起來像它已經是'NSArray'的'NSDictionary's。源代碼在哪裏(不是記錄的輸出)? – PengOne

2

字典中沒有最後一個元素,因爲字典中的元素沒有排序。

0

你能以某種方式使用鍵值獲取元素嗎? NSDictionaries沒有排序,所以沒有刪除「最後」元素的東西。

0

我認爲這是你自己在那裏的NSDictionaries數組。在這種情況下,這是很容易做到:

NSMutableArray *mArray = [NSMutableArray arrayWithArray:array]; // if not mutable 
[mArray removeLastObject]; 
5

沒有以字典所以不存在「最後目標」

然而,這可能會解決你的問題,但它可能並不總是刪除你正在考慮'最後一個對象'是:

[dictionaryName removeObjectForKey:[[dictionaryName allKeys] lastObject]]; 
相關問題