我正在调用一个方法,将两个数组传递给它,如下所示:
NSArray *marked_dates = [NSArray arrayWithObjects:[dateFormat dateFromString:@"19/03/2014"],[dateFormat dateFromString:@"17/04/2014"],[dateFormat dateFromString:@"12/02/2014"], nil];
NSArray *marked_colors = [NSArray arrayWithObjects:[UIColor greenColor],[UIColor greenColor],[UIColor greenColor],nil];
[calendar markDates:marked_dates withColors:marked_colors];
以下是接收此方法的方法:
-(void)markDates:(NSArray *)dates withColors:(NSArray *)colors {
self.markedDates = dates;
self.markedColors = colors;
NSLog(@"%@",[NSString stringWithFormat:@"%d",[dates count]]);
for (int i = 0; i<[self.markedDates count]; i++) {
NSLog(@"%@",[NSString stringWithFormat:@"%@", self.markedDates[i]]);
}
[self setNeedsDisplay];
}
日志显示0,我显然没有进入for
循环。
感谢您的帮助。
编辑: 我还将投票支持有关警告的任何信息:“格式字符串不是字符串文字”
在属性声明之下:
@property (nonatomic, retain) NSArray *markedDates;
@property (nonatomic, retain) NSArray *markedColors;
编辑:
所以是的,形成器给出了空值。 我是这样做的:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSLog(@"%@",[NSString stringWithFormat:@"%@",[dateFormat dateFromString:@"19/03/2014"]]);
//this prints "null"
使用解决方案进行编辑:
错误,我错误配置了格式化程序 用这个对我有用,谢谢大家的帮助。
[dateFormat setDateFormat:@"dd/MM/yyyy"];
答案 0 :(得分:2)
由于日期格式化程序仅生成nil
值,因此日期数组可能为空。修复日期格式化程序,以便正确生成NSDate
个对象,它应该可以工作:
[dateFormat setDateFormat:@"dd/MM/yyyy"];
答案 1 :(得分:0)
[dateFormat setDateFormat:@"dd/MM/yyyy"]; ?
答案 2 :(得分:0)
首先,您不应将属性名称和Local实例变量创建为同名。因为属性是自己创建带有_Property名称的实例var。问题在于行。
NSArray *marked_dates = [NSArray arrayWithObjects:[dateFormat dateFromString:@"19/03/2014"],[dateFormat dateFromString:@"17/04/2014"],[dateFormat dateFromString:@"12/02/2014"], nil];
也添加日期格式。 再看一遍。如果你仍然面临同样的问题,请告诉我。