[英]Call Objective C method with blocks from Swift
我正在使用他們的MatrixKit框架將Matrix消息傳遞實現到我的iOS應用中,該框架是通過Cocoapods添加到項目中的。 除了最后一個問題,我一切正常:我的Swift文件中未識別出其中一種提供的方法。 MXSession.h文件列出了一個方法:
- (void)start:(void (^)(void))onServerSyncDone
failure:(void (^)(NSError *error))failure NS_REFINED_FOR_SWIFT;
用於啟動MXSession。 我需要從我的Swift類中調用此方法,但我嘗試遵循以下方法無濟於事:
session.start({
//success
}, failure: {
//failure
})
編譯器抱怨說Value of type 'MXSession' has no member 'start'
顯然Value of type 'MXSession' has no member 'start'
。 另外,奇怪的是,我能夠訪問MXSession中的其他方法,例如:
- (void)resume:(void (^)(void))resumeDone;
下列:
session.resume {
//resumed successfully
}
完美地工作。 我對快速關閉不太滿意,我只是在犯語法錯誤嗎? 我已經嘗試了所有方法,但似乎無法使其正常工作。
好吧,當然,我在發布此問題的那一刻就解決了它。 顯然, NS_REFINED_FOR_SWIFT
宏在方法的開頭附加了兩個下划線,以便快速使用。 以下代碼編譯:
session.__start({
//success
}, failure: { error in
//failure
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.