iOS 判斷某個(gè)值是否屬于控制器的變量

在APP有動(dòng)態(tài)配置的情況下听诸,經(jīng)常需要判斷你所傳的值是否跟你想跳轉(zhuǎn)的控制器內(nèi)的參數(shù)相同桃纯,需要在跳轉(zhuǎn)前進(jìn)行一些判斷來防止控制器崩潰

判斷控制器中是否擁有該字符串值的變量

/**
 判斷控制器中是否擁有該字符串值的變量

 @param obj 控制器
 @param keystring 字符串值
 @return 是否擁有
 */
+ (BOOL)isPropertyFromObj:(id)obj WithKeyString:(NSString *)keystring {
    u_int count = 0;
    //存儲(chǔ)成員變量名稱的數(shù)組
    NSMutableArray *propertyArray = [NSMutableArray array];
    //獲取控制器的成員變量數(shù)組
    objc_property_t *properties = class_copyPropertyList([obj class], &count);
    __block BOOL isProperty;
    for (int i = 0; i < count; i++) {
        // 取出成員變量
        objc_property_t property = properties[i];
        
        // 成員變量名字
        NSString *keyValue = [NSString stringWithFormat:@"%s",property_getName(property)];
        [propertyArray addObject:keyValue];
        
    }
     //判斷成員變量名字?jǐn)?shù)組中是否包含該參數(shù)
        if ([propertyArray containsObject:keystring]) {
            ///有這個(gè)參
            isProperty = YES;
        }else {
            ///沒有這個(gè)參
            isProperty = NO;
        }
    return isProperty;
}

判斷控制器是否擁有字典所傳的值

/**
 判斷控制器是否擁有字典所傳的值

 @param obj 控制器
 @param dict 所傳入的字典參數(shù)
 @return 是否擁有
 */
+ (BOOL)isPropertyFromObj:(id)obj WithObjDict:(NSDictionary *)dict {
    u_int count = 0;
    //存儲(chǔ)成員變量名稱的數(shù)組
    NSMutableArray *propertyArray = [NSMutableArray array];
    //獲取控制器的成員變量數(shù)組
    objc_property_t *properties = class_copyPropertyList([obj class], &count);
    __block BOOL isProperty;
    for (int i = 0; i < count; i++) {
        // 取出成員變量
        objc_property_t property = properties[i];
        
        // 成員變量名字
        NSString *keyValue = [NSString stringWithFormat:@"%s",property_getName(property)];
        [propertyArray addObject:keyValue];

    }
    //遍歷字典,判斷數(shù)組中有沒有該元素,有則YES宵喂,一旦一個(gè)沒有則返回NO
    [dict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        if ([propertyArray containsObject:key]) {
            ///有這個(gè)參
            isProperty = YES;
        }else {
            ///沒有這個(gè)參
            isProperty = NO;
            return ;
        }
    }];
    return isProperty;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末或悲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子怪与,更是在濱河造成了極大的恐慌夺刑,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件分别,死亡現(xiàn)場離奇詭異遍愿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)耘斩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門沼填,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人括授,你說我怎么就攤上這事坞笙。” “怎么了荚虚?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵薛夜,是天一觀的道長。 經(jīng)常有香客問我版述,道長梯澜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任渴析,我火速辦了婚禮晚伙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俭茧。我一直安慰自己咆疗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布母债。 她就那樣靜靜地躺著午磁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪场斑。 梳的紋絲不亂的頭發(fā)上漓踢,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音漏隐,去河邊找鬼喧半。 笑死,一個(gè)胖子當(dāng)著我的面吹牛青责,可吹牛的內(nèi)容都是我干的挺据。 我是一名探鬼主播取具,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扁耐!你這毒婦竟也來了暇检?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤婉称,失蹤者是張志新(化名)和其女友劉穎块仆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體王暗,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悔据,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俗壹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片科汗。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绷雏,靈堂內(nèi)的尸體忽然破棺而出头滔,到底是詐尸還是另有隱情,我是刑警寧澤涎显,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布坤检,位于F島的核電站,受9級特大地震影響棺禾,放射性物質(zhì)發(fā)生泄漏缀蹄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一膘婶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛀醉,春花似錦悬襟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至垛玻,卻和暖如春割捅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帚桩。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工亿驾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人账嚎。 一個(gè)月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓莫瞬,卻偏偏與公主長得像儡蔓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子疼邀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

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

  • # XML復(fù)習(xí) ## 第一章 ## 思考題 **什么是XML喂江?** XML是可擴(kuò)展性標(biāo)記語言,XML是標(biāo)準(zhǔn)通用標(biāo)記...
    冷漠鐵錘丁富貴閱讀 808評論 0 0
  • 丑數(shù) 第一個(gè)只出現(xiàn)一次的字符位置這題也簡單旁振,使用整數(shù)數(shù)組的值是否等于1判斷是否有重復(fù)值获询。有個(gè)有意思的地方是初始化數(shù)...
    hayes0420閱讀 95評論 0 0
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫文章拐袜,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 2,768評論 2 9
  • 親愛的戰(zhàn)友們: 大家好阻肿!我是007-8班的劉轉(zhuǎn)麗瓦戚。接受學(xué)霸魏禹的分享邀請后,一直很忐忑丛塌,同時(shí)也很高興较解。 忐忑的原因...
    峰回右轉(zhuǎn)閱讀 604評論 3 2
  • 狗叫起來了把黑夜咬出一個(gè)個(gè)破洞老鼠鉆出來嚙食泛黃的經(jīng)書馬隨閃電隱入古代牛臥倒在地,咀嚼月光羊羔抖抖索索站起來雞冠上...
    伊甸隕石閱讀 1,076評論 5 9