我想把街区转换成封闭,但我不知道怎么做。我不知道有什么问题。
目标-C:
// monthBlock type
typedef NSString *(^JTCalendarMonthBlock)(NSDate *date, JTCalendar *jt_calendar);
// Block
self.calendar.calendarAppearance.monthBlock = ^NSString *(NSDate *date, JTCalendar *jt_calendar){
return @"";
};Swift:
// Swift closure
self.calendar.calendarAppearance.monthBlock = {(date:NSDate, jt_calendar:JTCalendar) -> NSString in
return "" as NSString
} 产生错误:
错误:不能将类型'(NSDate,JTCalendar) -> NSString‘的值分配给’JTCalendarMonthBlock‘类型的值!
发布于 2015-04-20 10:41:04
您的参数类型不完全匹配。你可以这样做:
self.calendar.calendarAppearance.monthBlock = { (date: NSDate!, jt_calendar: JTCalendar!) -> String! in
return ""
}或者,更简单地说:
calendar.calendarAppearance.monthBlock = { date, jt_calendar in
return ""
}我想JTCalendar不是您自己的类。如果是的话,您可能会考虑对其进行审计,添加空注释以明确这些参数是否可以是nil。在没有这些注释的情况下,Swift无法知道这些参数是否为nullable,因此它将这些参数解释为隐式展开选项。
https://stackoverflow.com/questions/29744265
复制相似问题