将 Objective C 个块转换为 Swift 个闭包
Converting Objective C blocks to Swift Closures
我只是想将这个 Objective C 块转换为 swift 但似乎有问题,我无法解决。
Objective C - 有效
HNKGooglePlacesAutocompleteQuery *searchQuery = [HNKGooglePlacesAutocompleteQuery sharedQuery];
[self.searchQuery fetchPlacesForSearchQuery:"API_KEY_HERE"
completion:^(NSArray *places, NSError *error) {
}
}];
Swift - 给出错误
var searchQuery : HNKGooglePlacesAutocompleteQuery = HNKGooglePlacesAutocompleteQuery.sharedQuery()
searchQuery.fetchPlacesForSearchQuery("API_KEY_HERE", completion:
{(places:NSArray, error: NSError) -> Void in
})
错误:
Cannot invoke 'fetchPlacesForSearchQuery' with an argument list of type '(String, completion: (NSArray, NSError) -> Void)'
Swift 桥接 NSArray 到 [AnyObject],这是你应该放入方法签名中的内容。
(places:[AnyObject], error: NSError) -> Void
我只是想将这个 Objective C 块转换为 swift 但似乎有问题,我无法解决。
Objective C - 有效
HNKGooglePlacesAutocompleteQuery *searchQuery = [HNKGooglePlacesAutocompleteQuery sharedQuery];
[self.searchQuery fetchPlacesForSearchQuery:"API_KEY_HERE"
completion:^(NSArray *places, NSError *error) {
}
}];
Swift - 给出错误
var searchQuery : HNKGooglePlacesAutocompleteQuery = HNKGooglePlacesAutocompleteQuery.sharedQuery()
searchQuery.fetchPlacesForSearchQuery("API_KEY_HERE", completion:
{(places:NSArray, error: NSError) -> Void in
})
错误:
Cannot invoke 'fetchPlacesForSearchQuery' with an argument list of type '(String, completion: (NSArray, NSError) -> Void)'
Swift 桥接 NSArray 到 [AnyObject],这是你应该放入方法签名中的内容。
(places:[AnyObject], error: NSError) -> Void