国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

PerformSelectormaycausealeakbecauseitsselectorisunknown解決方法

2019-11-14 20:23:11
字體:
來源:轉載
供稿:網友

我的技術博客經常被流氓網站惡意爬取轉載。請移步原文:http://m.survivalescaperooms.com/hamhog/p/3801030.html,享受整齊的排版、有效的鏈接、正確的代碼縮進、更好的閱讀體驗。

在Objective-C中需要以函數名或者函數指針來調用函數時,以回調函數為例,對象為(id)target,它的成員函數名為callback,之前習慣是這么寫的:

if ([target respondsToSelector:callback]){    [target performSelector:callback withObject:nil];}

但是在ARC下會報一個warning: PerformSelector may cause a leak because its selector is unknown

在網上查,很多人說的方法都是定義宏去ignore warning之類的。總感覺很不爽。今天查到了正確的解決方法:

【解決方法】

if ([target respondsToSelector:callback]){//    [target performSelector:callback withObject:nil];    IMP imp = [target methodForSelector:callback];    void (*func)(id, SEL) = (void *)imp;    func(target, callback);}

這樣就不會報warning了。

【原因】

詳細解釋可見爆棧上這個被采納的答案

暫時沒時間翻譯了,就先貼個鏈接在這兒吧~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凌云县| 兖州市| 油尖旺区| 衡南县| 盐津县| 都安| 纳雍县| 甘南县| 旬阳县| 西乌珠穆沁旗| 西华县| 胶州市| 安龙县| 沈丘县| 革吉县| 涿州市| 和静县| 南丹县| 巴南区| 江山市| 奇台县| 澄城县| 越西县| 太仆寺旗| 苗栗县| 分宜县| 陈巴尔虎旗| 仲巴县| 邛崃市| 双峰县| 宕昌县| 芮城县| 托克逊县| 贺州市| 海伦市| 广安市| 尚义县| 赤水市| 武鸣县| 石渠县| 农安县|