2013-07-08 41 views
0

好的,这里是皮包骨头。我在这方面进行了搜索,但没有发现这个问题很正确。 (我在Xcode FYI写这篇)如何仅显示当前日期和过去日期中的对象JSON

我一直负责的东西,应该很容易,它可能是,但我在起步的麻烦......

我需要下载JSON数据和它是只有三个项目的对象列表,日期,tite,内容。基本上3个字符串。日期不是创建的日期,而是整个对象的预期日期。用户希望能够在无人能够看到未来日期的同时预先加载数周。

我可以下载JSON数据没问题,我可以在列表中显示它,而不是问题。我不确定如何使程序忽略与日期不同的日期。

任何人都有这方面的见解?以下是其中一个测试对象的样子。

@type: "Devotional", 
@url: "http://api.storageroomapp.com/accounts/50ff0ad80f66027d84001680/collections/51c1ba270f6602499f0000ae/entries/51c1bc390f6602442c0002ec", 
@collection_url: "http://api.storageroomapp.com/accounts/50ff0ad80f66027d84001680/collections/51c1ba270f6602499f0000ae", 
@version: 2, 
@trash: false, 
@created_at: "2013-06-19T14:12:09Z", 
@updated_at: "2013-07-08T19:38:51Z", 
devotional_date: "2013-07-08", 
devotional_title: "Test Today Devotional", 
devotional_body: "This is a test of what Today's Daily Devotional would look like!" 
}, 

在此先感谢您的帮助。

+0

这个问题与使用JSON处理数据的语言有关。如果你适当地(用语言)标记你的问题,你会得到更多的意见。 –

+0

完成!谢谢!非常感激。 – ZachC

+0

日期从何而来并不重要。实际的问题是比较日期。只有当日期符合今天的日期时,您才需要通过复制旧列表中的项目来构建新的相关项目列表。有关比较日期,请参阅http://stackoverflow.com/questions/1811779/comparing-dates-in-coc – Paul

回答

0

这里是这样做比较的基本思路:

- (void)testDateIsToday { 
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
    NSDate *now = [NSDate date]; 
    NSInteger dateUnits = NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit; 
    NSDateComponents *dateParts = [gregorian components:dateUnits fromDate:now]; 
    NSString *dateString = @"2013-07-08"; // Date from your JSON 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    dateFormatter.dateFormat = @"yyyy-MM-dd"; 
    NSDate *requestedDate = [dateFormatter dateFromString:dateString]; 
    NSDateComponents *requestedParts = [gregorian components:dateUnits fromDate:requestedDate]; 

    NSLog(@"Equal? %i", [[gregorian dateFromComponents:requestedParts] compare:[gregorian dateFromComponents:dateParts]] == NSOrderedSame); 
} 

注意,这会基于时间段的比较,设备运行在设置中,我猜不会影响你因为你没有在你的JSON中指定时区。使用日历和日期组件是进行这种比较最安全的方法。

+0

另请参阅:http://stackoverflow.com/questions/5331512/comparing-certain-components-of-nsdate –

+0

真棒,感谢您的指导。不太确定该从哪里开始。我会在接下来的几天里给这个镜头一个镜头,然后回来看看我得到的结果。非常感谢你的帮助。 – ZachC

+0

@ZachC祝你好运! –