c函數(shù)回調(diào)oc

1拓挥、c語言回調(diào)可以用self的靜態(tài)傳入調(diào)用方法暂衡,也可以用類設(shè)置delegate傳出來朵耕,記得置nil

static class objectSelf;

objectSelf = self;

void cFunction(){
    [objectSelf invokeOCFunction];
}

ps:記得在合適的地方把objectSelf置nil

2似袁、try catch 時要注意內(nèi)存管理

try catch 時要注意內(nèi)存管理攘轩,MRC下可以增加@finally中release對象;

但是在ARC中時叉存,系統(tǒng)是在allocinit之后插入的內(nèi)存管理代碼,在trycatch一樣會受到影響度帮,這樣會導(dǎo)致內(nèi)存泄露(占用的棧內(nèi)存歼捏,由系統(tǒng)管理,多了會影響app性能)笨篷;
解決辦法是可以打開文件的-fobjc-arc-exceptions瞳秽,讓系統(tǒng)增加異常安全處理代碼來跟蹤清理對象,在objective-c++中率翅,這個會默認(rèn)開啟练俐。(備注:開啟這個并不理想,這樣的處理多了還會影響性能冕臭,因此oc中最好用error保證代碼質(zhì)量腺晾,而不是try-catch,而且oc中trycatch能捕獲的異常我們基本都能預(yù)防燕锥,所以try catch很少用)
例如下面的代碼就有問題:

        @try{
            NSMutableArray * a = @[@"1",@"2"].mutableCopy;
            [a removeObjectAtIndex:3];
        }@catch(NSException * ex){
            NSLog(@"reason:%@",ex.reason);
        }

可以用自動釋放池來處理:

  for (int i = 0 ; i< 10000; i++) {
        @autoreleasepool{
            @try{
                NSMutableArray * a = [[NSMutableArray alloc] initWithArray:@[@"1",@"2"]];
                [a removeObjectAtIndex:3];
            }@catch(NSException * ex){
                NSLog(@"reason:%@",ex.reason);
            }
        }
    }

3、委托模式delegate

自己寫的委托模式下每次都要調(diào)用response方法,這個會影響性能悯蝉,可以在setdelegate的時候归形,設(shè)置unsigned int:1 的結(jié)構(gòu)體,能響應(yīng)鼻由,設(shè)值為1暇榴,這樣在response的時候判斷是不是1就可以了

typedef struct{
    unsigned int  canResponse :1;///可以表示0~1(位段,bitfield)
    unsigned int  canResponseEight : 8;///表示0~255

}DelegateResponse;

{
    DelegateResponse delegateResponse;
}

- (void)setDelegate:(id<AAAProtocol>)delegate{
    _delegate = delegate;
    delegateResponse.canResponse = [_delegate respondsToSelector:@selector(eat)];
}

  if (delegateResponse.canResponse) {
        [self.delegate function];
    }

4蕉世、盡可能少引入頭文件

優(yōu)化編譯速度跺撼,引入的頭文件盡可能的少,比如只是用到類名讨彼,可以用@class

參考資料:《編寫高質(zhì)量ios與os x代碼的52個有效方法》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市柿祈,隨后出現(xiàn)的幾起案子哈误,更是在濱河造成了極大的恐慌,老刑警劉巖躏嚎,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜜自,死亡現(xiàn)場離奇詭異,居然都是意外死亡卢佣,警方通過查閱死者的電腦和手機重荠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虚茶,“玉大人戈鲁,你說我怎么就攤上這事∴诮校” “怎么了婆殿?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罩扇。 經(jīng)常有香客問我婆芦,道長,這世上最難降的妖魔是什么喂饥? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任消约,我火速辦了婚禮,結(jié)果婚禮上员帮,老公的妹妹穿的比我還像新娘或粮。我一直安慰自己,他們只是感情好集侯,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布被啼。 她就那樣靜靜地躺著帜消,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浓体。 梳的紋絲不亂的頭發(fā)上泡挺,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音命浴,去河邊找鬼娄猫。 笑死,一個胖子當(dāng)著我的面吹牛生闲,可吹牛的內(nèi)容都是我干的媳溺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碍讯,長吁一口氣:“原來是場噩夢啊……” “哼悬蔽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捉兴,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤蝎困,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后倍啥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體禾乘,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年虽缕,在試婚紗的時候發(fā)現(xiàn)自己被綠了始藕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡氮趋,死狀恐怖伍派,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凭峡,我是刑警寧澤拙已,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站摧冀,受9級特大地震影響倍踪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜索昂,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一建车、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椒惨,春花似錦缤至、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫉到。三九已至,卻和暖如春月洛,著一層夾襖步出監(jiān)牢的瞬間何恶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工嚼黔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留细层,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓唬涧,卻偏偏與公主長得像疫赎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子碎节,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,139評論 30 470
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理捧搞,服務(wù)發(fā)現(xiàn),斷路器狮荔,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法实牡,類相關(guān)的語法,內(nèi)部類的語法轴合,繼承相關(guān)的語法,異常的語法碗短,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • Swift版本點擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 25,368評論 7 249
  • 1、加入百人計劃我的目標(biāo)就是學(xué)習(xí)怎么管理團隊巡雨,當(dāng)前的這次分享吸收非常大闰渔。作為一個管理者,明確自己所關(guān)注的重點铐望,整體...
    小奮斗_3fbb閱讀 337評論 1 4