iOS7应用开发4、Foundation框架
1、动态绑定:id类型的对象,表示指向未知类型对象的指针;
指向对象的实际类型在运行时指定。在使用时,注意check该对象是否响应调用的方法(respondsToSelector)。可以将一个静态类型的对象付给id类对象。
[NSArray firstObject]等函数返回值本质上就是id类型。
id本身就是指针类型,所以不存在id *pObject这种写法。
当向id类型的对象发送消息时,编译时不会出现警告,但是若其实际指向的对象没有实际上没有那个方法,则在运行时会崩溃。
2、关于内省(introspection):
内省是对象揭示自己作为一个运行时对象的详细信息的一种能力。这些详细信息包括对象在继承树上的位置,对象是否遵循特定的协议,以及是否可以响应特定的消息,在避免因为调用对象不存在的方法而引发的程序崩溃时可以起到重要作用。主要用到的方法有:
(1)、isKindOfClass:Class:检查对象是否是那个类或者其继承类实例化的对象;
(2)、isMemberOfClass:Class:检查对象是否是那个类但不包括继承类而实例化的对象;
(3)、respondToSelector:selector:检查对象是否包含这个方法;
(4)、conformsToProtocol:protocol:检查对象是否符合协议,是否实现了协议中所有的必选方法。
3、Foundation框架
*NSObject:所有类的基类,实现description、copy/mutableCopy等方法;
*NSArray/NSMutableArray:有序数组;使用for-in循环枚举其中的元素;
*NSNumber:封装过的数值类,可用于整型、实数型、布尔型、枚举型等;
*NSValue:可用于封装一些其他的非基本类型的数据,如C结构体等;
*NSData:二进制数据集合;
*NSDate:日期、时间类;
*NSSet/NSMutableSet/NSOrderedSet/NSMutableOrderedSet:集合类;
*NSDictionary/NSMutableDictionary:键值对集合,对其中的数据存在强引用;
*Property List:一个集合的集合;比如nsarray的成员全部是nsstring,或者nsarray的成员是nsdictionary,其键是nsstring,值是nsnumber;在writeToFile等函数时常用;
*NSUserDefault:Property List的一种轻量化存储方式;用于存储比较简单的数据;
*NSRange:表示位置和长度的C结构体;若没找到则返回值为NSNotFound;
其他还有UIColor、UIFont分别表示颜色和字体;
内容太多了,具体可参考官方文档。
4、Attributed strings
NSAttributedString类:类似于(不同于也没有继承关系,但是可以通过方法返回一个string)NSString,每一个字符都包含一个NSDictionary成员储存了该字符的属性,如字体、字号、下划线、加粗等。可用于button、label、text view等对象中。
iOS - OC Foundation 框架 框架是由许多类、方法、函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易。 Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架。 Cocoa :是指 Foundation 、Core Data 和 AppKit(Application Kit)框架。
iOS - Swift Foundation 框架 框架是由许多类、方法、函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易。 Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架。 Cocoa :是指 Foundation 、Core Data 和 AppKit(Application Kit)框架。
jerry.yin 毕业于上海大学通信与信息工程学院,从事流媒体和视频编解码的研究与开发工作; 研究领域包括视频编解码标准、视频处理和流媒体技术、移动互联网技术等。
相关文章
- UI框架搭建三部曲之三:应用技巧篇
- 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序
- 使用 Elizabeth 为应用生成随机样本数据
- 在Spring框架中实现属性配置动态刷新,不需要重启应用。
- 搭建一个全栈式的HTML5移动应用框架(纯干货,亲!)
- 【领会要领】web前端-轻量级框架应用(jQuery基础)
- 根证书的应用和信任基础
- 使用Angular 4、Bootstrap 4、TypeScript和ASP.NET Core开发的Apworks框架案例应用:Task List
- 【后台弹窗】应用跳转直通车--通知栏通知跳转后台应用
- 【开发者必看】移动应用趋势洞察白皮书-应用体验变革篇
- 《Microsoft.NET企业级应用架构设计(第2版)》——2.5 笑到最后
- 使用Microsoft的IoC框架:Unity来对.NET应用进行解耦
- 【Scrapy 爬虫框架】学习与应用内容目录索引
- 国外开发团队总结2022 年 iOS 应用程序开发的顶级库和框架
- Python教程之深度比较Python移动应用框架
- 挺棒的七个Python图形应用GUI开发框架
- 并发框架Disruptor场景应用
- 开发平台 = 基础设施 + 应用框架 + 运行机制(原理)
- 归档应用
- C++反射机制:可变参数模板实现C++反射(使用C++11的新特性--可变模版参数,只根据类的名字(字符串)创建类的实例。在Nebula高性能网络框架中大量应用)
- iOS应用千万级架构:MVVM框架
- linux driver --- platform框架应用完整实例(未使用设备树)
- Harmony应用上架报错“请使用发布版本的API开发应用申请上架”的解决方案
- CYQ.Data 数据框架 跨平台应用开发
- Winform开发框架之插件化应用框架实现
- 四。多态机制在实际中的应用