亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Objective-C中,如何測試對象類型?

在Objective-C中,如何測試對象類型?

Smart貓小萌 2019-12-07 16:31:28
我需要測試對象的類型是NSString還是UIImageView。我該怎么做?是否有某種“ isoftype”方法?
查看完整描述

3 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

如果您的對象是myObject,并且要測試以查看它是否是NSString,則代碼將是:


[myObject isKindOfClass:[NSString class]]

同樣,如果你想考myObject的UIImageView:


[myObject isKindOfClass:[UIImageView class]]


查看完整回答
反對 回復 2019-12-07
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

您可能會使用


- (BOOL)isKindOfClass:(Class)aClass

這是一種方法NSObject。


有關更多信息,請查閱NSObject文檔。


這就是您的用法。


BOOL test = [self isKindOfClass:[SomeClass class]];

您也可以嘗試做這樣的事情


for(id element in myArray)

{

    NSLog(@"=======================================");

    NSLog(@"Is of type: %@", [element className]);

    NSLog(@"Is of type NSString?: %@", ([[element className] isMemberOfClass:[NSString class]])? @"Yes" : @"No");

    NSLog(@"Is a kind of NSString: %@", ([[element classForCoder] isSubclassOfClass:[NSString class]])? @"Yes" : @"No");    

}


查看完整回答
反對 回復 2019-12-07
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

運行一個簡單的測試,我以為我要記錄什么有效,什么無效。我經常看到人們在檢查該對象的類是否是另一個類的成員或等于另一個類。


對于下面的行,我們有一些格式不正確的數據,可以是NSArray,NSDictionary或(null)。


NSArray *hits = [[[myXML objectForKey: @"Answer"] objectForKey: @"hits"] objectForKey: @"Hit"];

這些是執行的測試:


NSLog(@"%@", [hits class]);


if ([hits isMemberOfClass:[NSMutableArray class]]) {

    NSLog(@"%@", [hits class]);

}


if ([hits isMemberOfClass:[NSMutableDictionary class]]) {

    NSLog(@"%@", [hits class]);

}


if ([hits isMemberOfClass:[NSArray class]]) {

    NSLog(@"%@", [hits class]);

}


if ([hits isMemberOfClass:[NSDictionary class]]) {

    NSLog(@"%@", [hits class]);

}


if ([hits isKindOfClass:[NSMutableDictionary class]]) {

    NSLog(@"%@", [hits class]);

}


if ([hits isKindOfClass:[NSDictionary class]]) {

    NSLog(@"%@", [hits class]);

}


if ([hits isKindOfClass:[NSArray class]]) {

    NSLog(@"%@", [hits class]);

}


if ([hits isKindOfClass:[NSMutableArray class]]) {

    NSLog(@"%@", [hits class]);

}

isKindOfClass工作得很好,而isMemberOfClass沒有。


查看完整回答
反對 回復 2019-12-07
  • 3 回答
  • 0 關注
  • 715 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號