• 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 > iOS之《Effective Objective-C 2.0》读书笔记(14)

iOS之《Effective Objective-C 2.0》读书笔记(14)

作者:雨花石的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-23

雨花石的博客通过本文主要向大家介绍了ios,读书笔记,类型信息查询等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1.用类型信息查询方法来检视类继承体系

  • isMemberOfClass: 能够判断出对象是否为某个特定类的实例
  • isKindOfClass: 则能够判断出对象是否为某类或其派生类的实例
NSMutableDictionary *dict = [NSMutableDictionary new];  
[dict isMemberOfClass:[NSDictionary class]]; ///< NO 
[dict isMemberOfClass:[NSMutableDictionary class]]; ///< YES 
[dict isKindOfClass:[NSDictionary class]]; ///< YES 
[dict isKindOfClass:[NSArray class]]; ///< NO

2.类型信息查询方法的具体应用

  • 根据数组中存储的对象生成以逗号分隔的字符串,并将其存至文本文件
- (NSString*)commaSeparatedStringFromObjects:(NSArray*)array {  
    NSMutableString *string = [NSMutableStringnew];  
    for (id object in array) {  
        if ([object isKindOfClass:[NSStringclass]]) {  
            [string appendFormat:@"%@,", object];  
        } else if ([object isKindOfClass:[NSNumberclass]]) {  
            [string appendFormat:@"%d,", [object intValue]];  
        } else if ([object isKindOfClass:[NSDataclass]]) {  
            NSString *base64Encoded = /* base64 encoded data */;  
            [string appendFormat:@"%@,", base64Encoded];  
        } else {  
            // Type not supported  
        }  
    }  
    return string;  
} 

3.不要直接比较类对象

  • 要使用==操作符,而不要使用比较Objective-C对象时常用的“isEqual:”方法(参见第8条)。原因在于,类对象是“单例”(singleton),在应用程序范围内,每个类的Class仅有一个实例。也就是说,另外一种可以精确判断出对象是否为某类实例的办法是:
id object = /* ... */;  
if ([object class] == [EOCSomeClassclass]) {  
    // 'object' is an instance of EOCSomeClass  
} 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

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

  • 代码持续更新tableview与用户滑动tableview冲突?
  • 为什么NSMutableArray继承于NSArray
  • 制作的framework项目含masonry,如何处理避免冲突
  • IOS有没有类似安卓的AccessibilityService功能
  • UITableViewCell加载多张图片导致内存异常暴增
  • iOS,我在Githubfork别人的仓库后更改了代码,可以用CocoaPods把我的仓库加入项目里吗?
  • iOS根视图切换到一个新的根视图时,该如何释放之前的根视图?
  • 关于时间戳转换为NSDate和标准格式
  • iOSAPP后台运行收到推送语音播报无效急急急!!!
  • 黑屏屏保ios横屏偶尔一半黑屏的bug是可以解决的吗

相关文章

  • 2017-06-05 导航栏如何修改导航栏返回路径?
  • 2017-06-05 xcode无法导入SwiftHTTP
  • 2017-06-05 七牛图片上传成功后根据返回地址无法获取图片,之前都是好的
  • 2017-06-05 返利网如何返利一个按钮如何设置tag,点击后返回不同界面
  • 2017-06-05 a型血和b型血生的孩子Swift懒加载和计算型属性的一点疑惑
  • 2017-06-05 mac电脑可以上网但是ping不通所有的ip,这是怎么回事呢
  • 2017-06-05 iOScrashbug
  • 2017-06-05 开发微信页面的时候,使用了html锚点用来在同一个页面中定位,在苹果手机微信浏览器运行,每次点击锚点定位会多出一个页面?
  • 2017-06-05 iOS蓝牙后台扫描
  • 2017-06-05 发布带有TodayExtensionwidget插件的appBundleId问题

文章分类

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

最近更新的内容

    • 使用xibautolayout,对父视图进行动画,子视图并不能自动改变布局
    • 双视影院播放器下载ijkplayer的播放本地视频的方法是啥?
    • iOSXIB怎么进行屏幕是配啊
    • iOS蓝牙后台扫描
    • 认识物体和图形如何让物体B和C冲离物体A呢?
    • 将URL上的图片存入NSData
    • 设置NavigationBar为全透明的时候,statusBarStyle无法设定为Light
    • 语音识别声音命令关于iOS声音识别的框架
    • qq好友列表分组设计关于微信好友列表跳转问题
    • UITableView点击cell的时候怎么改变sectionHeader的颜色?

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

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