如何将此Objective-C代码转换为Swift
我是Swift的新手,我试图将这行代码从Objective-C转换为Swift。这里的Objective-C代码:如何将此Objective-C代码转换为Swift
首先,客观C代码的条件和位置是这样的:
NSString *term = [[NSUserDefaults standardUserDefaults] valueForKey:@"term"] ?: defaultTerm;
NSString *location = [[NSUserDefaults standardUserDefaults] valueForKey:@"location"] ?: defaultLocation;
我翻译成这样迅速的(这我不知道如何计算的:defaultTerm)
var term: AnyObject? = NSUserDefaults.standardUserDefaults().valueForKey("term");
var location: AnyObject? = NSUserDefaults.standardUserDefaults().valueForKey("location");
var ApiSample:YPAPISample = YPAPISample();
而且这是在目标C的查询: [APISample queryTopBusinessInfoForTerm:术语位置:位置completionHandler:^(的NSDictionary * topBusinessJSON,NSError *错误){
当我输入我的SWIFT代码,它出来像这样
APISample.queryTopBusinessInfoForTerm(term, location: location) { (topBusinessJSON, error) -> Void in
code
}
我试图消除 - >和无效的,但它只是似乎并不喜欢它。
这是行不通的吗?
// cast the results that come back from UserDefaults
var term: String? = NSUserDefaults.standardUserDefaults().valueForKey("term") as? String
var location: String? = NSUserDefaults.standardUserDefaults().valueForKey("location") as? String
APISample.queryTopBusinessInfoForTerm(term, location: location, completionHandler: { (topBusinessJSON: [NSObject: AnyObject]!, error: NSError!) -> Void in
//code
})
“无法用类型为'(AnyObject ?, location:ANyObject?,completionHandler:(NSDictionary !, NSError!) - > Void)'的参数列表调用'queryTopBusinessInfoForTerm'' –
看起来它可能是一个参数问题正在传递什么pameters是否期望的位置和期限是正确的NSObject? – villy393
检查更新的问题请 –
?:变成?? ,,, – gnasher729
没有理由删除 - > Void。如果你把它放在里面,你有什么问题吗? – gnasher729
所以它会是: var term:AnyObject? = NSUserDefaults.standardUserDefaults()。valueForKey(“term”)?? defaultTerm? –