遇坑總結(jié)

從2019.2.19日記錄之后遇到的坑。(持續(xù)更新)
1.獲取系統(tǒng)控件對(duì)應(yīng)類型可能會(huì)變化

之前業(yè)務(wù)有需求想修改版本更新中AlertController的messageLabel為左對(duì)齊(默認(rèn)居中),由于之前封裝的版本更新監(jiān)測(cè)使用的為系統(tǒng)AlertController,基于這之上查閱各類資料隆圆,通過以下方法進(jìn)行查詢messageLabel并修改它的對(duì)齊方式

    UIAlertController * alertVC = [UIAlertController  alertControllerWithTitle:[NSString stringWithFormat:@"發(fā)現(xiàn)新版本:%@", model.versionName] message:model.message preferredStyle:UIAlertControllerStyleAlert];
    UIView *subView1 = alertVC.view.subviews[0];
    UIView *subView2 = subView1.subviews[0];
    UIView *subView3 = subView2.subviews[0];
    UIView *subView4 = subView3.subviews[0];
    UIView *subView5 = subView4.subviews[0];
//                        UILabel * message = subView5.subviews[2];
//                        if ([message isKindOfClass:[UILabel class]]) {
//                            message.textAlignment = NSTextAlignmentLeft;
//                        }
    for (int i = 0 ; i<subView5.subviews.count; i++) {
          UIView * view = subView5.subviews[i];
//容錯(cuò)處理旱幼,在某種情況下 該view不是對(duì)應(yīng)的messageLabel而是uiview類型肠仪,可能會(huì)導(dǎo)致崩潰
          if ([view isKindOfClass:[UILabel class]] && view != nil) {
              UILabel * label = subView5.subviews[i];
              if ([label.text containsString:@"發(fā)現(xiàn)新版本"]) {

               }else
              {
                    label.textAlignment = NSTextAlignmentLeft;
              }

           }
     }

原理上 在從 suView5 中獲取到的擁有“發(fā)現(xiàn)新版本”這個(gè)text內(nèi)容的view一定為 messageLabel损晤。并且擁有UILabel的所有屬性和方法褪测。
但是在某種情況下(無法還原)可能這個(gè)view屬于(UIView)如果不加入

if ([view isKindOfClass:[UILabel class]] && view != nil) 

該容錯(cuò)判斷喝滞,可能會(huì)導(dǎo)致View的類型為UIView 阁将,調(diào)用label.textAlignment = NSTextAlignmentLeft; 崩潰

2.AFN 可能導(dǎo)致內(nèi)存泄漏

在使用leaks跑應(yīng)用時(shí)定位到AFN循環(huán)引用。主要原因在于創(chuàng)建Manager時(shí) [AFHTTPSessionManage manager]方法每次都會(huì)初始化一個(gè)新的session對(duì)象右遭,我們的網(wǎng)絡(luò)層一般都封裝成單例的形式做盅,每次網(wǎng)絡(luò)請(qǐng)求都會(huì)調(diào)用[AFHTTPSessionManage manager]方法,導(dǎo)致manager無法被釋放窘哈。
解決方法:

static AFHTTPSessionManager *operation_instance;

//創(chuàng)建請(qǐng)求manager
+(AFHTTPSessionManager *)creatManager:(ParamType)type
{
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        operation_instance=[AFHTTPSessionManager manager];
    });
    
    if (type == query) {
        operation_instance.requestSerializer = [AFHTTPRequestSerializer serializer];

        [operation_instance.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
//        [operation.requestSerializer setValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];
    }else
    {
        operation_instance.requestSerializer = [AFHTTPRequestSerializer serializer];
//        [operation.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    }
    
    operation_instance.requestSerializer.HTTPShouldHandleCookies = YES;
    
    operation_instance.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    //超時(shí)時(shí)間設(shè)置
    [operation_instance.requestSerializer willChangeValueForKey:@"timeoutInterval"];
    operation_instance.requestSerializer.timeoutInterval = 10;
    [operation_instance.requestSerializer didChangeValueForKey:@"timeoutInterval"];
    
    NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
    
    config.timeoutIntervalForRequest = 15.0;
    
    
    operation_instance.responseSerializer.acceptableContentTypes= [NSSet setWithObjects:@"multipart/form-data",@"Content-Type",@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/plain", nil];
    
    //header加入?yún)?shù)
  
    
    NSString* auth = [CommonUtil getValueForKey:String_Cache_AccessToken];
    if(![CommonUtil isEmpty:auth]) {
        if(Api_Debug) {
            NSLog(@"AccessToken:%@", auth);
        }
        [operation_instance.requestSerializer setValue:auth forHTTPHeaderField:@"Authorization"];
    }
    
    NSString *appCurrentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
    
    [operation_instance.requestSerializer setValue:appCurrentVersion forHTTPHeaderField:@"x-version"];
    
    return operation_instance;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吹榴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子滚婉,更是在濱河造成了極大的恐慌图筹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異远剩,居然都是意外死亡扣溺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門瓜晤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娇妓,“玉大人,你說我怎么就攤上這事活鹰」。” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵志群,是天一觀的道長着绷。 經(jīng)常有香客問我,道長锌云,這世上最難降的妖魔是什么荠医? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮桑涎,結(jié)果婚禮上彬向,老公的妹妹穿的比我還像新娘。我一直安慰自己攻冷,他們只是感情好娃胆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著等曼,像睡著了一般里烦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上禁谦,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天胁黑,我揣著相機(jī)與錄音,去河邊找鬼州泊。 笑死丧蘸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遥皂。 我是一名探鬼主播力喷,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼渴肉!你這毒婦竟也來了冗懦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤仇祭,失蹤者是張志新(化名)和其女友劉穎披蕉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡没讲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年眯娱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爬凑。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡徙缴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嘁信,到底是詐尸還是另有隱情于样,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布潘靖,位于F島的核電站穿剖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏卦溢。R本人自食惡果不足惜糊余,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望单寂。 院中可真熱鬧贬芥,春花似錦、人聲如沸宣决。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疲扎。三九已至昵时,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椒丧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國打工救巷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壶熏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓浦译,卻偏偏與公主長得像棒假,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子精盅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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