[英]Using swift function with return value and completion block in Objective-C
[英]block as parameter or return value for C function
我在課堂上有這樣的財產:
@property (nonatomic, strong) void (^ifSuccess)(MyClass *myObject);
現在,我需要在C函數中執行此操作:
if (self.ifSuccess) {
self.ifSuccess(value);
}
但這是行不通的,因為在C函數中,我不會引用self。 因此,我需要將該塊作為參數傳遞給C函數。 像這樣:
void myFunction(myClass *object, XXX) {
}
XXX可能在哪里
void(^ifSuccess)()
使功能像
void myFunction(myClass *object, void(^ifSuccess)()) {
}
請確認是否正確。
問題是我無法在對myFunction的調用中傳遞self.ifSuccess。
這行不通
myFunction(object, self.ifSuccess);
所以我需要一種方法來讀取self.ifSuccess塊並將其傳遞給函數。
怎么樣?
注意:是的,這需要在C中
* 一個:- *是的,您可以在c方法內部將引用傳遞給self。
* 2 :- *聲明目標c塊可能在語法上令人生畏,因此我不喜歡太系統化。
我會做
typedef void (^ifSuccess)(MyClass *myObject);
現在我將財產聲明為
@property (nonatomic, strong) ifSuccess mySuccessBlock;
你的功能變成
void myFunction(myClass *object,ifSuccess blockParameter) {
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.