从 NSDictionary 检索键/值对会导致数据不正确并崩溃
Posted
技术标签:
【中文标题】从 NSDictionary 检索键/值对会导致数据不正确并崩溃【英文标题】:retrieving key/value pairs from NSDictionary leads to incorrect data and also crash 【发布时间】:2012-01-18 06:56:58 【问题描述】:我的字典包含两个键值对日期/文本..这里的日期也是字符串格式,现在我正在提取键和值并将其传递给其他函数..以下面的方式
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeStyle = NSDateFormatterNoStyle;
dateFormatter.dateFormat = @"dd-MMM-yyyy";
keys = [Dictionary allKeys];
values = [m_dateNoteDict allValues];
for(int i = 0 ; i<[keys count]; i++)
NSString *notes = [values objectAtIndex:i];
NSDate *noteDate = [dateFormatter dateFromString:[keys objectAtIndex:i]];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit)fromDate:[self getCurrentDate]];
NSInteger year = [weekdayComponents year];
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDateComponents *timeZoneComps=[[NSDateComponents alloc] init];
[timeZoneComps setYear:year];
[timeZoneComps setHour:00];
[timeZoneComps setMinute:00];
[timeZoneComps setSecond:01];
noteDate =[gregorian dateFromComponents:timeZoneComps];
[self saveNotes:0 :noteDate :notes];//passing the date to this function
NSLog(@"dates:%@",noteDate);
我的字典包含两个日期,即 1 月 1 日和 1 月 3 日..但是每次我遍历循环时,只有第一个 jan 被传递,而 3rd jan 没有被传递,所以,朋友们,请帮助我了解在哪里我错了..有时它会崩溃..
问候 兰吉特
【问题讨论】:
【参考方案1】:我认为不是
keys = [Dictionary allKeys];
你打算使用:
keys = [m_dateNoteDict allKeys];
【讨论】:
是的,抱歉,即是拼写错误以上是关于从 NSDictionary 检索键/值对会导致数据不正确并崩溃的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中对 NSDictionary 对象的 NSArray 进行排序