无法使用类型的参数列表调用类型 'NSMutableDictionary' 的初始值设定项

Cannot invoke initializer for type 'NSMutableDictionary' with an argument list of type

Cannot invoke initializer for type 'NSMutableDictionary' with an argument list of type '(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
        )

我很确定 swift 将该特定方法定义为

NSMutableDictionary(objects: <#T##[AnyObject]#>, forKeys: <#T##[NSCopying]#>)

所以你必须相应地进行调整。我知道它在 2.0

事实上,我建议使用 swift 数据类型,我知道从 objective c 开始习惯可能会很痛苦,但它值得,我会在这里使用字典

对于 swift,您可以使用 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) 
]

使用此表示法可能允许 swift 编译器查明您遇到的任何错误,而不是关于方法签名的长错误。此外,这将为您提供类型检查!