Невозможно вызвать инициализатор для типа "NSMutableDictionary" со списком аргументов типа
Невозможно вызвать инициализатор для типа "NSMutableDictionary" со списком аргументов типа "(objectsAndKeys: String, String, String, String, String, String, NSNumber, String, String, String)"
У кого-нибудь есть мысли о том, почему я получаю эту ошибку?
data = NSMutableDictionary(objectsAndKeys:
VPDateFormatter.dateFormatterPost.stringFromDate(NSDate().myGetDateWithDayDifference(dateOffset)), "activityDate",
tracker.objectForKey(VPTracker_Description) as! String, "activityDescription",
trackerType, "activityType",
currentMemberID, "memberid",
VPDateFormatter.dateFormatterOnlyDate.stringFromDate(date), kVPTrackerStatistic_MemberDate
)
2 ответа
Я уверен, что Swift определяет этот конкретный метод как
NSMutableDictionary(objects: <#T##[AnyObject]#>, forKeys: <#T##[NSCopying]#>)
Таким образом, вы должны настроить соответственно. Я знаю, что это делает в 2.0
На самом деле, я бы предложил использовать быстрые типы данных. Я знаю, что привыкание к цели c может быть затруднительным, но оно того стоит, я бы выбрал здесь словарь.
С быстрым вы можете использовать var Dictionary<String, AnyObject>
вместо NSMutableDictionary
,
var data = [
"activityDate" : VPDateFormatter.dateFormatterPost.stringFromDate(NSDate().myGetDateWithDayDifference(dateOffset)),
"activityDescription" : tracker.objectForKey(VPTracker_Description) as! String,
"activityType" : trackerType,
"memberid" : currentMemberID,
kVPTrackerStatistic_MemberDate : VPDateFormatter.dateFormatterOnlyDate.stringFromDate(date)
]
Использование этой нотации g может позволить быстрому компилятору точно определить любую ошибку, которую вы имеете, вместо длинной ошибки в сигнатурах методов. Кроме того, это даст вам проверку типов!