Iphone 目标-C->;删除NSDictionary中的最后一个元素
编辑: 守则: //存储问题字典Iphone 目标-C->;删除NSDictionary中的最后一个元素,iphone,objective-c,xcode,nsdictionary,Iphone,Objective C,Xcode,Nsdictionary,编辑: 守则: //存储问题字典 - (void)requestFinished:(ASIHTTPRequest *)request { NSData *responseData = [request responseData]; NSString *json = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSDictionary *qs = [json o
- (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()等价物?如果没有,如何删除最后一个元素?字典中没有最后一个元素,因为字典中的元素没有顺序。这看起来是(或可能是)一个字典数组。如果将这些字典作为
NSMutableArray
的对象,则可以使用–removeLastObject
。否则,您就是SOL,因为即使是NSMutableDictionary
也没有这样的方法。您能通过使用键值以某种方式获得元素吗?NSDictionaries没有排序,因此没有删除“last”元素的事情。我认为这是一个NSDictionaries数组。在这种情况下,很容易做到:
NSMutableArray *mArray = [NSMutableArray arrayWithArray:array]; // if not mutable
[mArray removeLastObject];
字典没有顺序,因此没有“最后一个对象” 但是,这可能会解决您的问题,尽管它可能并不总是删除您认为的“最后一个对象”是:
[dictionaryName removeObjectForKey:[[dictionaryName allKeys] lastObject]];
这看起来像是一个NSDictionary数组,对吗?这些是对象数组吗?如果是这样,则始终可以删除最后一个元素。如果它们是对象字典,并且对象具有所有这些字段。钥匙是什么?时间戳?它是数据库中的一个元组字符串。。我使用jsonkit反序列化json字符串并将其分配给nsdictionary。代码在上面。nslog输出上述nsdictionary如何将nsdictionary转换为数组删除最后一个对象,然后转换回字典?@user559142:在我看来,它已经是
nsdictionary
s的NSArray
。源代码(不是记录的输出)在哪里?