我一直在我的 swift 项目中使用 objC 框架,因此我将 objC 方法转换为 swift。 objC方法如下:
[[MySingleton sharedInstance] provisionUserWithPIN:pin
organizationID:kOrgID
accessToken:kOrgToken
completion:^(NSString *UID, User *user) {
}];
我的快速转换是:
MySingleton.sharedInstance().provisionUserWithPIN(pin, organizationID: kOrgID, accessToken: kOrgToken) {(UID: String, user: User) in
}
我收到错误:表达式类型不明确,在 ( 中的 ProvisionUserWithPIN 后没有指出更多上下文。
我不知道我做错了什么。坚持了几个小时。
声明:
- (void)provisionUserWithPIN:(NSString *)PIN organizationID:(NSString *)organizationID accessToken:(NSString *)accessToken completion:(void (^)(NSString *UID, User *user))completion;
最佳答案
你应该注意到在 Objective-C 中这样声明的参数
(NSString *)something
在 Swift 中不变成这个
something:String
但它实际上被翻译成这样:
something:String!
所以你可以在 Swift 中调用你的 Objective-C 方法
MySingleton.sharedInstance().provisionUserWithPIN(
"pin",
organizationID: "orgID",
accessToken: "accessTken") { (UID: String!, user: User!) -> () in
}
希望这对您有所帮助。
关于ios - 将 Obj C 转换为 Swift 错误 :type of expression is ambiguous without more context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384728/