
一起Talk IOS吧
文章平均质量分 66
介绍IOS开发相关知识
talk_8
这个作者很懒,什么都没留下…
展开
-
iOS开发环境:XCode
看官们,我们在前面章回中对Foundation框架中的知识进行了总结,本章回中将对介绍XCode进行介绍。XCode是苹果公司提供的软件开发工具,它用来开发苹果电脑、手机和其它智能设备中使用的程序,它的安装和其它软件安装方法相同,直接在App Strore中安装就可以,因此这里就不做介绍,我们将重点介绍它提供的相关功能。基本窗口XCode左侧是工程管理窗口,用来管理各种文件;中间是主窗口,主要用来编写程序;右侧是属性面板窗口。上面是标题菜单,常用的编译、运行打包等功能都在菜单栏中;下面是信息输出窗口.原创 2022-01-30 21:30:00 · 11004 阅读 · 0 评论 -
Foundation框架知识总结
看官们,我们在前面章回中对OC中的知识进行了总结,本章回中将对Foundation框架中的知识进行总结。我们在前面章回中对Foundation框架中的知识做了详细的介绍,同时以“代码结合文字”的方式进行了演示。本章主要是对这些内容做整体的归纳和总结,OC中的知识可以分为六大类:框架的内容和位置、框架中的数字类NSNumber、框架中的字符串类NSString、Collections中常用的类、文件操作、日期和时间操作。下面是具体的内容。框架的内容和位置:以介绍性内容为主,了解框架的历史和在它在IOS.原创 2022-01-30 16:02:17 · 1804 阅读 · 0 评论 -
OC知识总结
看官们,我们在前面章回中介绍了OC中的异常,本章回中将对OC中的知识进行总结。我们在前面章回中对OC的知识做了详细的介绍,同时以“代码结合文字”的方式进行了演示。本章主要是对这些内容做整体的归纳和总结,OC中的知识可以分为三大类:基础语法知识、面向对象知识、内存管理知识。下面是具体的内容。基础语法知识:主要包含变量类型、运算符和程序的三大结构;面向对象知识:主要包含封装、继承、多态,以及与此相关的协议和NSObject中常用的方法;内存管理知识:主要包含KVC,KVO和内存引用计算相关的内容;.原创 2022-01-30 20:15:00 · 2339 阅读 · 0 评论 -
OC中的异常
我们在前面章回中介绍了OC中的对象复制,本章回中将介绍OC中的异常.原创 2021-12-31 20:30:00 · 1510 阅读 · 0 评论 -
OC中对象的复制:二
看官们,我们在前面章回中介绍了OC中对象的复制,本章回中将继续介绍这方面的知识。在上一章回中我们介绍了什么是复制以及如何进行复制。本章回中将介绍复制背后的原理和复制操作的原则。复制的原理我们通过复制操作的两个方法(copy和mutableCopy)进行复制操作时本质上是在调用`copyWithZone`和`mutableCopyWithZone`这两个方法.这两个方法是`NSCopying`和`NSMutableCopying`协议中的方法,而NSObject类实现了这两个协议并且重写了协议中的这原创 2021-12-18 20:00:00 · 216 阅读 · 0 评论 -
OC中对象的复制:一
看官们,我们在前面章回中介绍了OC中的属性特性,本章回中将介绍OC中对象的复制。什么是复制这里说的复制是copy的翻译,因为复制操作使用了copy这个方法。这里说的复制主要指对象的复制,不包括基本类型值的复制。在OC中我们经常会复制一个对象给另外一个对象,常见的复制是函数中的参数传递。复制的分类复制分为浅复制(shallow copy)和深(deep copy)复制。浅复制表示复制对象的引用,对象不会增加一个新的副本,但是它会导致对象的引用计数器加1.深复制表示复制一个新的对象副本,..原创 2021-12-16 20:00:00 · 2035 阅读 · 0 评论 -
OC中的属性特性
看官们,我们在前面章回中介绍了OC中的内存管理,本章回中将介绍OC中的属性特性。首先说一下属性表示类中的属性,有时也叫类的成员或者变量,特性是对属性的修饰。这里说的“特性”是从attribute翻译过来的,不同地方可能有不同的翻译,本章回以及后续章回中提到的特性都表示attribute。接下来我们先通过一个示例代码来演示什么是属性特性。@interface Person : NSObject@property (nonatomic,readwrite,strong) NSString...原创 2021-12-14 20:00:00 · 730 阅读 · 0 评论 -
OC中的内存管理
看官们,我们在前面章回中介绍了OC中的KVO,本章回中将介绍OC中的内存管理。内存管理涉及到了指针,内存分配和释放以及内存布局中的栈与堆,代码区等,这些内容与C语言相同,我们不做详细介绍。如果有看官不了解这些知识可以参考我在C语言专栏中写过的关于内存布局的博客。我们在本章回中主要介绍引用计数相关的内容。引用计数原理在OC中每个对象都有一个整数与它关联,当有一个指针指向对象时,该整数的值加1,当指针不再指向对象时该整数值减1;当该整数值为0时系统会调用dealloc方法回收对象占用的内...原创 2021-12-12 20:00:00 · 1764 阅读 · 0 评论 -
OC中的KVO
看官们,我们在前面章回中介绍了OC中的KVC,本章回中将介绍OC中的KVO。我们说的KVO是Key Value Observing的缩写,它主要用来监听类属性的变化,它是在NSObject类中实现的,通常情况下我们定义的类只需要继承NSObject类就可以使用KVO来监听类属性的变化。下面是KVO的使用方法:1.给属性注册监听器- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)ke...原创 2021-12-06 20:15:00 · 509 阅读 · 0 评论 -
OC中的KVC
看官们,我们在前面章回中介绍了Foundation框架中的日期操作,本章回中将介绍OC中的KVC。我们说的KVC是Key Value Codeing的缩写,它是OC中操作类属性的一种方式,它是在NSObject中实现的,通常情况下我们定义的类只需要继承NSObject类就可以通过KVC来操作类的属性。如果想了解更加详细的知识,可以在官方文档中搜索NSKeyValueCoding相关的内容。KVC对类中属性的操作主要有两种,下面是具体的操作以及实现该操作时需要使用的方法1.修改类中的...原创 2021-11-30 21:13:44 · 1543 阅读 · 0 评论 -
Foundation框架中的日期操作总结
看官们,我们在前面章回中介绍了Foundation框架中的NSCalendar,本章回中将介绍Foundation框架中的日期操作做总结。日期操作主要涉及NSDate、NSDateFormatter和NSCalendar三个大类以及NSLocale、NSTimeZone和NSDateComponents三个小类。我们在前面章回中详细介绍过这些类以及类中经常使用的方法,本章回中将从日期操作的角度来对这些类做一个整体的总结:1.程序中对日期的操作都是通过NSDate类进行的,它是日期操作...原创 2021-11-21 20:06:43 · 1933 阅读 · 0 评论 -
Foundation框架中的NSCalendar
看官们,我们在前面章回中介绍了Foundation框架中的NSDateFormatter,本章回中将介绍Foundation框架中的NSCalendar。NSCalendar是Foundation框架中的类,它把日期和时间中的各个单元(年月日和时分秒)封装起来,提供一些常用的功能以方便我们在程序中使用。它的主要功能为分解和合并日期和时间单元。分解就是把被封装的日期和时间单元从NSCalendar对象中独立分离出来,因为有时候只需要使用其中的某个单元。合并与分离正好相反,它把独立的日期和...原创 2021-11-22 15:00:00 · 357 阅读 · 0 评论 -
Foundation框架中的NSDateFormatter
看官们,我们在上一章回中介绍了Foundation框架中的NSDate,本章回中将介绍Foundation框架中的NSDateFormatter。NSDateFormatter是Foundation框架中的类,它用来转换日期和时间。主要的转换操作有以下两种:1.把NSDate类型的日期和时间对象转换为NSString类型的对象,以方便程序使用; 2.把存放在NSString对象中的日期和时间转换为NSDate类型的对象;该类提供了相关的方法来实现转换操作,接下来我们介绍如何使用这些...原创 2021-11-19 15:00:00 · 273 阅读 · 0 评论 -
Foundation框架中的NSDate
看官们,我们在前面章回中介绍了Foundation框架中的文件操作,本章回中将介绍Foundation框架中的NSDate。NSDate是Foundation框架中的类,它用来管理日期和时间。我们可以通过该类提供的方法来管理日期和时间,比如获取日期和时间等,接下来我们介绍常用的方法。获取日期和时间+ (instancetype)date- (instancetype)init;这两个方法用来获取当前的日期和时间,日期和时间保存在返回的NSDate中,它们区别在于date是...原创 2021-11-17 20:44:08 · 349 阅读 · 0 评论 -
Foundation框架中的文件操作总结
看官们,我们在前面章回中介绍了Foundation框架中NSFileHandle,本章回中将介绍Foundation框架中的文件操作。我们在前面章回中介绍了文件操作相关的内容,本章回对这些内容做一个整体的总结,文件操作主要包含三大类知识:1.数据缓冲区:NSData和NSMutableData; 2.文件操作类:NSFileManager 3.内容操作类:NSFileHandle这里说的文件操作主要指文件(包含文件和目录)的创建与删除,内容操作主要指读写文件中的内容。为了给大家更加直观..原创 2021-11-08 10:30:00 · 191 阅读 · 0 评论 -
Foundation框架中的NSFileHandle二
看官们,我们在前面章回中介绍了Foundation框架中的NSFileHandle,本章回中将继续介绍该内容。我们在上一章回中主要介绍了NSFileHandle类中文件操作相关的方法,在实际项目中需要综合使用这些方法才能完成文件操作,文件操作的主要步骤可以分为三大步:打开、读写、关闭,我自己称其为文件操作三步曲。这么说可能比较抽象,接下来我们通过代码来演示这三个步骤,下面是具体的代码,请大家参考:#include<Foundation/Foundation.h>int...原创 2021-11-07 20:00:00 · 196 阅读 · 0 评论 -
Foundation框架中的NSFileHandle一
看官们,我们在前面章回中介绍了Foundation框架中的NSFileManager,本章回中将介绍Foundation框架中的NSFileHandle。NSFileHandle可以看作是文件指针的封装,更准确的说是文件描述符的封装,这点在官方文档中也提到了:An object-oriented wrapper for a file descriptor.如果看官们有C语言文件操作的基础或者Linux文件操作的基础,那么理解NSFileHandle会容易一些。如果看官们没有这些基础知识也不要担...原创 2021-11-07 08:02:43 · 204 阅读 · 0 评论 -
Foundation框架中的NSFileManager二
看官们,我们在前面章回中介绍了Foundation框架中的NSFileManager,本章回中将继续介绍它。我们在上一章回中主要介绍了目录相关的操作,本章回中主要介绍文件相关的操作。创建文件- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary<NSFileAttributeKey, id> *)attr;...原创 2021-10-31 19:53:47 · 174 阅读 · 0 评论 -
Foundation框架中的NSFileManager一
看官们,我们在前面章回中介绍了Foundation框架中的NSMutableData,本章回中将介绍Foundation框架中的NSFileManager。NSFileManager是文件相关的类,该类提供了与文件操作相关的方法,接下来我们将介绍如何使用这些方法来操作文件。这里说的文件表示我们常用的文件和目录,因为IOS是类似Unix的操作系统,该系统中所有内容都被l当作文件。本章回中主要介绍目录相关的操作,后面的章回中将文件相关的操作。获取home目录@property(readonly, cop原创 2021-10-31 19:46:24 · 187 阅读 · 0 评论 -
Foundation框架中的NSMutableData
看官们,我们在前面章回中介绍了Foundation框架中的NSData,本章回中将介绍Foundation框架中的NSMutableData。我们在上一章回中介绍的NSData是一种固定的缓冲区,因为我们不能修改缓冲区中的内容,而NSMutableData是一种可变的缓冲区,因为我们可以修改缓冲区中的内容。它是NSData的子类,因此我们在上一章回中介绍过的相关方法也适用于该类,因为NSMutableData类从父类NSData继承了这些方法,此外它还有一些自己特有的方法:添加、修改NSMu...原创 2021-10-31 10:02:55 · 411 阅读 · 0 评论 -
Foundation框架中的NSData
看官们,我们在前面章回中介绍了Foundation框架中Collections主题,本章回中将介绍Foundation框架中的NSData。NSData表示数据缓冲区,主要用来缓冲文件的输入和输出。它是Foundation框架提供的类,接下来我们介绍该类中常用的方法。初始化data //创建一个NSData对象,内容为空(instancetype)dataWithBytes:(const void *)bytes length:(NSUInteger)length;(...原创 2021-10-31 09:13:37 · 320 阅读 · 0 评论 -
Foundation框架中的Collections
看官们,我们在前面章回中介绍了NSArray,NSSet,NSDictionary以及它们的子类,这些类都属于Collections主题,本章回中将介绍Foundation框架中的Collections。在Foundation框架中Collections并不是类,它表示是一个主题,该主题中的又分为Basic Collections、Indexs等子类,子类是我们对它的称呼,官方文档称其为Topics,Collections下面还有其它Topics没有做介绍,比如Indexes中的NSInde...原创 2021-10-24 21:22:53 · 126 阅读 · 0 评论 -
Foundation框架中的动态字典
看官们,我们在前面章回中介绍了Foundation框架中的静态字典,本章回中将介绍Foundation框架中的动态字典。动态字典使用NSMutableDictionary类来表示,它是NSDictionary的子类,因此我们在上在章回中介绍过的相关方法也适用于动态字典,因为NSMutableDictionary类从父类NSDictionary继承了这些方法,此外它还有一些自己特有的方法:添加、修改中和删除字典中的键值对。接下来我们依次介绍这些方法。向字典中添加键值对使用setObj...原创 2021-08-15 10:37:56 · 219 阅读 · 0 评论 -
Foundation框架中的静态字典
看官们,我们在前面章回中介绍了Foundation框架中的集合,本章回中将介绍Foundation框架中的字典。字典和集合类似,表示多个对象存放在一起的容器,不过字典中的对象不是单个对象,而是键值对,其中的键和值必须是对象类型,而且每个键不能相同,每个键通过哈希值来确认是否相同,这点和集合一样。字典有两个分类:静态字典和动态字典,静态字典表示字典中的元素不可以被修改,反之可以修改的称为动态字典。这点和数组以及集合是一样的。静态字典使用NSDictionary类来表示,动态字典使用NSM...原创 2021-08-14 21:34:01 · 268 阅读 · 0 评论 -
Foundation框架中的动态集合
看官们,我们在前面章回中介绍了Foundation框架中的静态集合,本章回中将介绍Foundation框架中的动态集合。动态集合使用NSMutableSet类来表示,它是NSSet的子类,因此我们在上在章回中介绍过的相关内容也适用于动态集合,因为NSMutableSet类从父类NSSet继承了这些方法,此外它还有一些自己特有的方法:向集合中添加元素,删除集合中的元素以及集合复合操作。接下来我们依次做介绍这些方法。向集合中添加元素使用addObject:方法可以把参数中的对象添加到集合中..原创 2021-08-05 07:02:53 · 125 阅读 · 0 评论 -
Foundation框架中的静态集合
看官们,我们在前面章回中介绍了Foundation框架中的数组,本章回中将介绍Foundation框架中的集合。集合和数组比较类似,鉴于我们在前面章回中刚刚介绍完数组相关的知识,本章回中我们将采用对比的方法来介绍集合。集合和数组都表示多个对象存放在一起的容器,而且要求集合成员必须是对象类型,这点和数组一样,不过集合中的成员不像数组中的成员一样有固定的顺序,它们是无序的。还有一点不一样的是集合中元素不能相同,集合通过两个元素的哈希值是否相同来判断两个元素是否相同。集合有两个分类:静态集合...原创 2021-08-04 21:31:53 · 214 阅读 · 0 评论 -
Foundation框架中的数组排序
看官们,我们在前面章回中介绍了Foundation框架中的静态数组和动态数组,本章回中将介绍数组排序.数组排序就是把数组中的元素按照升序或者降序的顺序进行排列,这样使的数组中的所有元素井然有序,在实际的项目中经常使用有序的数组。NSArray提供了相关的方法对数组中的元素进行排序,接下来我们依次介绍这些方法。sortedArrayUsingSelector: //使用元素自带的方法对元素进行排序sortedArrayUsingFunction:context: //使用原创 2021-07-30 22:28:12 · 146 阅读 · 0 评论 -
Foundation框架中的动态数组:NSMutableArray
看官们,我们在前面章回中介绍了Foundation框架中的静态数组,本章回中将介绍Foundation框架中的动态数组.动态数组使用NSMutableArray类来表示,它是NSArray类的子类,因此我们在上在章回中介绍过的相关内容也适用于动态数组,因为NSMutableArray类从父类NSArray继承了这些方法,此外它还有一些自己特有的方法:在数组中插入元素,删除数组中的元素,修改数组中的元素.接下来我们依次做介绍这些方法。在数组中插入元素在数组中插入元素表示在数组尾部...原创 2021-07-29 21:59:48 · 184 阅读 · 0 评论 -
Foundation框架中的静态数组:NSArray
看官们,我们在前面章回中介绍了Foundation框架中的字符串,本章回中将介绍Foundation框架中的数组.数组表示多个对象按照一定的顺序存放在一起的容器,框架中的数组成员必须是对象类型,不过对象的类型可以不一样,这点和C语言中的数组不一样。常用的是静态数组和动态数组,静态数组表示数组中的元素及其顺序不可以被修改,反之可以修改的称为动态数组。静态数组使用NSArray类来表示,动态数组使用NSMutableArray类来表示。明白数组的概念和分类后,我们介绍与数组相关的操作。数组初始原创 2021-07-28 22:07:39 · 206 阅读 · 0 评论 -
Foundation框架中的日志输出
看官们,我们在前面章回中介绍了Foundation框架中的字符串,本章回中将介绍Foundation框架中的日志输出.在框架中我们可以使用NSLog方法来输出日志。我们写程序的时候经常使用日志,比如输出相关程序某个变量的值,或者跟踪程序的运行过程等等。接下来介绍如何使用NSLog方法,该方法是一个具有可变参数的方法,可以输出单个字符串,也可以通过格式化字符串输出变量或者对象的值,具体用法如下面的代码所示:NSLog(@"This is string"); //输出单个字符串NSL.原创 2021-07-25 21:12:07 · 167 阅读 · 0 评论 -
Foundation框架中的可变字符串:NSMutableString
看官们,我们在上一章回中介绍了Foundation框架中的NSString,本章回中将介绍Foundation框架中的NSMutableString.我们在上一章回中已经介绍过什么是可变字符串,框架中提供了NSMutableString类来表示可变字符串,它是NSString类的子类,因此我们在上一章回中介绍的字符串操作都适用于NSMutableString类的对象,也就是可变字符串,看官们知道其中的原因吗?有看官说是继承,没错,看来这位看官对继承的理解很准确。NSMutableString除了继承父类的原创 2021-07-22 21:59:50 · 159 阅读 · 2 评论 -
Foundation框架中的不可变字符串:NSString
看官们,我们在上一章回中介绍了Foundation框架中的NSNumber,本章回中将介绍Foundation框架中的NSString.字符串是程序中经常使用的内容,OC中提供的字符串不能满足面向对象编程的需求,因此Foundation框架提供了NSString类,该类的对象就是字符串。框架中的字符串分为两大类,一类为可变字符串,另一类为不可变字符串。这里“可变”表示可以修改字符串本身,或者说修改对象的内容。因为我们刚才已经提到过:字符串是类的对象。比如“apple”代表一个字符串,如果它可以被修改为"原创 2021-07-19 21:59:52 · 143 阅读 · 2 评论 -
Foundation框架中的数字类型:NSNmuber(二)
看官们,我们在上一章回中对NSNumber类型做了详细的分析,本章回中我们将给出完整的代码,请大家参考:#import<Foundation/Foundation.h>int main(){ int intValue = 4; NSInteger nsIntegerValue = 5; //两种初始化NSNumber的方法 NSNumber *nsNumberA = [NSNumber numberWithInt: 6]; NSNumber *nsNumberB = [原创 2021-06-30 07:01:02 · 181 阅读 · 0 评论 -
Foundation框架中的数字类型:NSNmuber (一)
看官们,前面章回对Foundation框架做了简单的介绍,本章回中主要介绍该框架中的数字类型,通过本章回的内容你可以获得以下知识:什么是对象类型的数字如何初始化对象类型的数字对象类型的数字与基本类型的数字之间如何转换对象类型的数字如何比较大小什么是对象类型的数字在介绍什么是对象类型的数字前,我们先看看NSNumber这个类,它是Foundation框架中提供的数字类,NSNumber类的对象或者说NSNumber类的实例就是对象类型的数字,与其对应的是int,double等基本数字类型,基本原创 2021-06-30 06:54:39 · 207 阅读 · 0 评论 -
IOS程序开发框架
看官们,前面章回的内容介绍了OC中的基础知识,掌握这些基础知识后就可以开发OC程序了,不过我们的目的是开发IOS应用程序,因此还需要掌握一些IOS开发框架的知识,本章回中主要介绍IOS开发的整体框架,并且对各个框架做简要的说明。IOS的程序开发框架主要包含三大部分:ApplicationCocoa TouchCoreOS.这三部分从上到下依次排列。Application就是我们平常使用的应用程序,Cocoa Touch是一个框架的统称,我们稍后介绍;CoreOS表示操作系统及其内核。接下来我原创 2021-06-27 21:59:43 · 816 阅读 · 4 评论 -
一起Talk IOS吧(第二十五回 OC中的文件结构)
看官们,面向对向的内容到此告一段落,我们在本章回中介绍OC程序的文件结构。因为到目前为止,我们所提供的示例代码都在一个文件中。而引入面向对象的内容后这种单一的文件布局结构已经不合适了,所以我们要介绍文件结构相关的知识。程序中各种类的定义、协议的定义放在独立的文件中,文件名和类名或者协议名相同,文件使用小数点和h后缀来表示,我们称其为头文件;程序中各种类的实现放在独立的文件中,文件名和类名相同,文件使用小数点和m后缀来表示,我们称其为源文件;程序中包含main方法的代码放到独立的文件中,文件名中包含m原创 2021-01-17 21:59:54 · 161 阅读 · 0 评论 -
一起Talk IOS吧(第二十四回 OC中的根类NSObject)
看官们,我们在前面章回中介绍面向对象的知识时总有一个绕不开的内容:NSObject,本章回中将详细它。在OC中,NSObject是所有类的根类,这点我们在前面章回中的示例代码中可以看到,作为根类它提供了一些最基础的功能:初始化,输出类中成员的明细和比较对象是否相同.这些功能通过具体的方法来体现,它们是:init, description,isEquals.接下来我们详细分析如何使用这三个方法。init方法用来做初始化,如果有专门的内容需要初始化,那么就重写此方法,否则直接使用父类的方法就可以;原创 2021-01-11 21:29:43 · 214 阅读 · 0 评论 -
一起Talk IOS吧(第二十三回 OC中的协议使用示例)
看官们,我们在上一章回中对协议的内容做了概述性的分析,本章回中我们将通过具体的例子来演示如何使用协议。下面是具体的代码。#import<Foundation/Foundation.h>@protocol EarPhone @optional-(void) AdjustVolume;@required-(void) PownerOn;-(void) PownerOff;@end@protocol SIMCard@required -(void) network;原创 2021-01-10 19:21:13 · 186 阅读 · 0 评论 -
一起Talk IOS吧(第二十二回 OC中的协议概述)
看官们,我们在前面章回中介绍了面向对象的三个主要内容,本章回中我们将面向对象的另外一个知识点:协议。协议综合了封装与继承的特性,在IOS编程中使用比较多。我们先给一个简单的模板代码,通过代码来了解什么是协议:@protocol ProtocolName @required/@optional-(type) ProtocolFunction;@end@interface ClassName: BaseClass <ProtocolName>//类的属性和方法声明省略不写@end原创 2021-01-10 09:46:38 · 217 阅读 · 0 评论 -
一起Talk IOS吧(第二十一回 多态中的类型检查)
看官们,我们在上一章回末尾提到了类型转换的条件,本章回中我们详细分析一下如何检查这些条件。检查条件有专门的方法,我们主要介绍两个方法:isKindOfClass和isMemberOfClass,接下来我们分别介绍它们。isKindOfClass:Obj 用来检查某个对象的类是否为Obj对象的类或者其子类,如果是,返回YES,否则返回NO。通常有二种情况会返回YES。1.被检查对象的类与Obj的类相同;2.被检查对象的类是Obj对象类的子类;isMemberOfClass:Obj 用来检原创 2021-01-09 21:59:54 · 138 阅读 · 0 评论