[英]Cannot call value of non-function type
嘗試將其轉換為Swift 3.0時遇到問題。
我有:
public func calendarView(_ view: DDCalendarView, eventsForDay date: Date) -> [Any]? {
let daysModifier = (date as NSDate).days(from: Date())
//var daysMod = date.days(from: Date())
//var newE = self.events(forDay: daysModifier as Int) as NSArray
var Good = self.events(forDay: daysModifier) as Any
var dates = [NSMutableArray]()
var e:DDCalendarEvent
for e in Good as! [AnyObject] {
if e.dateBegin(isEqual(date)) as! Bool == true || e.dateEnd(isEqual(date)) as! Bool == true {
dates.append(e as! NSMutableArray)
}
}
return dates
}
如果e.dateBegin(isEqual(Date)){}出現此錯誤,則為條件。 而在Objective-C代碼中,代碼是:
- (NSArray *)calendarView:(DDCalendarView *)view eventsForDay:(NSDate *)date {
//should come from db ;) NOW using testdata
NSInteger daysMod = [date daysFromDate:[NSDate date]];
NSArray *newE = [self eventsForDay:daysMod]; //always today ;)
NSMutableArray *dates = [NSMutableArray array];
for (DDCalendarEvent *e in newE) {
if([e.dateBegin isEqualDay:date] ||
[e.dateEnd isEqualDay:date]) {
[dates addObject:e];
}
}
return dates;
}
及其isEqualDay函數的返回布爾值
- (BOOL)isEqualDay:(NSDate *)date {
NSDateComponents *compA = self.currentCalendarDateComponents;
NSDateComponents *compB = date.currentCalendarDateComponents;
return ([compA day]==[compB day] && [compA month]==[compB month ]&& [compA year]==[compB year]);
}
有什么解決辦法嗎?
這行:
if e.dateBegin(isEqual(date)) as! Bool == true || e.dateEnd(isEqual(date)) as! Bool == true {
應該:
if e.dateBegin.isEqualDay(date) == true || e.dateEnd.isEqualDay(date) == true {
這是假設你已經又譯isEqualDay:
方法上的擴展功能Date
。
順便說一句-您的翻譯中還有很多其他問題。 上面僅涵蓋了您在問題中詢問的特定行。
以下應該是您想要的:
public func calendarView(_ view: DDCalendarView, eventsForDay date: Date) -> [Date] {
let daysModifier = date.days(from: Date()) // return Int
let newE = self.events(forDay: daysModifier) // return [DDCalendarEvent]
var dates = [Date]()
for e in newE {
if e.dateBegin.isEqualDay(date) == true || e.dateEnd.isEqualDay(date) == true {
dates.append(e)
}
}
return dates
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.