我无法将某些Objective C转换为Swift。
iCloudSchemaDatabase *sdb = [self schema: @"33"];
我不知道问题出在哪里,我尝试过各种尝试,并寻找原因,显然我需要传递一个字符串,但是没有任何作用...
var x = self.iCloudDBDelegate.schema("")
let sdb = self.iCloudDBDelegate.schema("33")
模式来自Objective C协议
@protocol iCloudDBDelegate<NSObject>
@required
@property (weak,nonatomic) id<iCloudDBDelegate>iCloudDBDelegate;
@optional
-(iCloudSchemaDatabase*)schema:(NSString*)calledBy;
@end
协议将其添加到我的swift文件中。
public var iCloudDBDelegate: iCloudDBDelegate!
答案 0 :(得分:0)
这是答案,非常惊讶...
let sdb = iCloudDBDelegate!.schema!("33")
答案 1 :(得分:0)
未经处理,您将无法调用schema
方法:
nil
schema
方法的情况(因为这样做是可选的)。 妥善处理这两个问题看起来像这样:
// because `schema` may not be implemented
// |
// because the delegate may be `nil` |
// | |
// v v
if let schemaResult = iCloudDBDelegate?.schema?("33") {
// do something with the result of calling schema
} else {
// either the delegate is `nil` or it doesn't implement `schema`.
}