我正在制作一个具有 tableview 的 iPhone 应用程序。表格视图需要在一年中的不同日子显示不同的信息。
我似乎无法弄清楚如何告诉 tableview 显示哪些数据。
例如,运动器材将根据一年中的哪一周加载不同的信息。
请帮忙
我正在制作一个具有 tableview 的 iPhone 应用程序。表格视图需要在一年中的不同日子显示不同的信息。
我似乎无法弄清楚如何告诉 tableview 显示哪些数据。
例如,运动器材将根据一年中的哪一周加载不同的信息。
请帮忙
您可以有一个项目数组,NSDictionary
并有一个关键的“日期”来存储事件日期。在 init 的某个地方,您可以使用NSPredicate
. 像这样的东西:
- (id)initWithNibName: (NSString*)nibNameOrNil bundle: (NSBundle*)nibBundleOrNil {
self = [super initWithNibName: nibNameOrNil bundle: nibBundleOrNil];
if (self) {
// Custom initialization
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd";
_eventsArray = [[NSArray alloc] initWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:
@"Christmas event", @"name",
[formatter dateFromString: @"2013-12-25"], @"date",
nil],
[NSDictionary dictionaryWithObjectsAndKeys:
@"New Year event", @"name",
[formatter dateFromString: @"2014-01-01"], @"date",
nil],
nil];
__block typeof(formatter) blockFormatter = formatter;
NSPredicate *predicate = [NSPredicate predicateWithBlock: ^BOOL(NSDictionary *evaluatedObject, NSDictionary *bindings) {
NSDate *date = [evaluatedObject objectForKey: @"date"];
if ([date isEqualToDate: [blockFormatter dateFromString: @"2013-12-25"]])
return YES;
return NO;
}];
_dataSource = [_eventsArray filteredArrayUsingPredicate: predicate];
[formatter release];
}
return self;
}
您可以修改谓词以检查日期是否在本周,或者您需要的任何内容。
PS不要忘记发布_eventsArray
。dealloc