• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > objective-cObjective-C中如何检验对象类型?

objective-cObjective-C中如何检验对象类型?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了js中对象的类型,对象类型,java判断对象类型,易语言对象类型,js 对象类型等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:objective-c Objective-C中如何检验对象类型?
描述:

我需要检测对象是否是NSString或UIImageView类型。我怎样才能完成?有没有“isoftype”函数类型?

原问题:In Objective-C, how do I test the object type?


解决方案1:

无节操拖文档:

Class Name: NSObject


isKindOfClass:

Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class. (required)

-(BOOL)isKindOfClass:(Class)aClass

isMemberOfClass:

Returns a Boolean value that indicates whether the receiver is an instance of a given class. (required)

-(BOOL)isMemberOfClass:(Class)aClass

解决方案2:

另外还有 NSObject 还有个方法判断是否是某个类的子类:

isSubclassOfClass:

Returns a Boolean value that indicates whether the receiving class is a subclass of, or identical to, a given class.

+ (BOOL)isSubclassOfClass:(Class)aClass

文档里面都有的……

解决方案3:

mmc
如果对象是myObject,并且想要检测它是否是NSString, 那么代码应该是这样:

[myObject isKindOfClass:[NSString class]]

同样的,如果想检测 myObject是不是UIImageView,用如下代码:

[myObject isKindOfClass:[UIImageView class]]

Bryan Hare
你可能会用:

- (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");    
}

Alex Zavatone
运行一个简单的测试,我会记录什么可行、什么不可行。我常看到人们检验对象的类是否是其他类的成员或者等同于其他的类。
下面这行,有一些不太完善的数据可以实现NSArray、NSArray、或者(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]);
}

isMemberOfClass 不起作用时,isKindOfClass仍然可以相当起作用。


Yedy
当你想区分superClass和inheritedClass时,你可以使用:

if([myTestClass class] == [myInheritedClass class]){
   NSLog(@"I'm the inheritedClass);
} 
if([myTestClass class] == [mySuperClass class]){
   NSLog(@"I'm the superClass);
} 

在这里使用- (BOOL)isKindOfClass:(Class)aClass 会导致两次TRUE,因为inheritedClass是superClass的一种。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • objective-cObjective-C中如何检验对象类型?

相关文章

  • 2017-06-05 iOS锁屏、解锁
  • 2017-06-05 26uuu页面访问升级iOS页面跳转后访问webservice的问题
  • 2017-06-05 余额宝最多能存多少钱一个手机最多能"检测"到多少个蓝牙列表?
  • 2017-06-05 关于IOStableView刷新问题
  • 2017-06-05 苹果要求链接走HTTPS,是要求APP内打开的网页也必须是HTTPS吗?
  • 2017-06-05 iOS有什么好用的crash追踪工具,针对上线产品的?
  • 2017-06-05 Alamofire如何将request添加到一个队列里面,顺序执行??
  • 2017-06-05 透明内裤裆可以看到毛iOSNSArray可以指定内容对象吗?
  • 2017-06-05 ipad2ios6到底該不該兼容iOS6?
  • 2017-06-05 富文本编辑器app中集成轻量级富文本编辑器?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何获取UILabel中某一个子字符串的坐标
    • js调用代码JS调用OC方法,调转不同url,方法不执行
    • iostextview有没有好用的第三方库做键盘输入框
    • xcode使用CocoaPod打包framework时,如果在h文件中引入了其他第三方pod,打包时需要修改什么
    • 有关ios产品类型和开发者帐号的难题
    • 各位大神,wifi万能钥匙获取wifi列表怎么做到的啊
    • Xcode8断点不走
    • xmpp单点登录
    • iphone4激活出错podliblint出错,错误详情在下方
    • xcodearchiveXcode文件操作

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有