私はSwiftで2つの異なる関数を定義しました。Objective-Cからの呼び出し方法をテストするだけです。 't!Objective-CからいくつかのSwift関数を呼び出せません(その他のもの)
私はここでそれらを定義した:Objective-Cで
public extension UIViewController {
func testAddingOperationTo(array: inout [Operation]) -> Operation {
let completionBlock = BlockOperation (block: {
print("completionOperation")
})
return completionBlock;
}
func testSomethingWith (count: Int){
print("testing something \(count)")
}
}
、私は正しいヘッダファイルをインポートした、と私はちょうど罰金第二メソッドを呼び出すことができます。
[self testSomethingWithCount:0];
しかし、最初のものは動作しません... Xcodeの自動補完では表示されません。手動で入力してもビルドエラーが発生します。私はこのように呼びたいと思っています:
NSOperation *completionOperation = [self testAddingOperationToArray: operationsList];
何が間違っていますか?私が間違って機能を定義したのでしょうか、それとも私が気づいていないSwiftについてのあいまいなルールがありますか?
スウィフトでObjective-Cタイプを使用するにはどうすればよいですか?どうすればUnsafeMutablePointerでメソッドを書き直し、渡された配列に操作を追加することができますか? –
Swiftの 'Array'は' NSArray'との間でブリッジされています。問題は 'inout'の使用であり、' Array'の使用ではありません。 –