Objective-C函数速查实例手册

Objective-C函数速查实例手册 pdf epub mobi txt 电子书 下载 2025

张权 著
图书标签:
  • Objective-C
  • 函数
  • 速查
  • 实例
  • 编程
  • 开发
  • iOS
  • macOS
  • 参考
  • 手册
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115336415
版次:01
商品编码:11406209
品牌:异步图书
包装:平装
开本:大32开
出版时间:2014-02-01
页数:496
正文语种:中文

具体描述

内容简介

  Objective-C是一种通用、高级、面向对象的编程语言,是iOS平台以及相关开发的主流编程语言。在TIOBE新的编程语言排行榜中,Objective-C仅次于C和Java,位居第三。
  《Objective-C函数速查实例手册》全面、系统地介绍了Objective-C中常用的函数和方法,并提供了大量实例,帮助读者掌握其用法。全书共分3篇。第1篇介绍Objective-C的发展历程、特点、技术构成、Objective-C开发环境的构建方法、Objective-C程序数学运算中常用的函数等;第2篇介绍数字对象、字符串对象、数组对象、字典对象、集合、文件、时间和日历、进程、线程、锁、数据对象和归档中常用的方法;第3篇介绍窗口和颜色、自定义视图、文本框和文本视图、图像和图像视图、表视图以及常用控件中常用的方法。此外,作者专门为《Objective-C函数速查实例手册》录制了大量的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于本书的配书光盘中。
  《Objective-C函数速查实例手册》涉及面广,从基本的Objective-C语言函数,到Cocoa中两个框架的方法,几乎涵盖Objective-C开发所用到的所有方法。《Objective-C函数速查实例手册》适合所有想全面学习Objective-C开发技术的人员阅读,也适合各种使用Objective-C进行开发的程序员参考查阅。对于Objective-C程序员来说,本书是一本不可多得的案头必备的参考用书。

作者简介

张权,现为天津红翔吉瑞网络科技有限公司CEO,硅谷访问学者,国内顶级数据库专家,主研移动终端与大数据交互。拥有多家上市公司移动终端解决方案实施经验,曾为国内外多家知名互联网企业提供移动终端技术咨询服务。

内页插图

目录

目 录

第1篇 Objective-C准备篇

第1章 Objective-C学习环境准备 3
1.1 Objective-C基础 3
1.1.1 Objective-C的发展历程 3
1.1.2 Objective-C语言的特点 3
1.1.3 技术架构 4
1.2 开发环境 5
1.2.1 注册开发者账号 5
1.2.2 下载安装Xcode 8
1.2.3 更新帮助文档 12
1.3 编写第一个Objective-C程序 13
1.3.1 创建项目 13
1.3.2 编写程序 15
1.3.3 运行程序 15
1.3.4 使用帮助 16
1.4 小结 17

第2章 数学运算(math)函数 18
2.1 算术运算函数 18
2.1.1 rand()函数:产生随机数 18
2.1.2 abs()函数/labs()函数:整数的绝对值 19
2.1.3 fabs()/fabsf()/fabsl()函数:浮点数的绝对值 19
2.1.4 floor()/floorf()/floorl()函数:向下取整 20
2.1.5 ceil()/ceilf()/ceill()函数:向上取整 21
2.1.6 round()/roundf()/roundl()函数:四舍五入 22
2.1.7 sqrt()/sqrtf()/sqrtl()函数:求平方根 22
2.1.8 fmax()/fmaxf()/fmaxl()函数:求最大值 23
2.1.9 fmin()/fminf()/fminl()函数:求最小值 24
2.1.10 hypot()/hypotf()/hypotl()函数:求直角三角形斜边的长度 25
2.1.11 fmod()/fmodf()/fmodl()函数:求两数整除后的余数 26
2.1.12 modf()/modff()/modfl()函数:浮点数分解为整数和小数 27
2.1.13 frexp()/frexpf()/frexpl()函数:浮点数分解尾数和以二为底的指数 28
2.2 三角运算函数 29
2.2.1 sin()/sinf()/sinl()/函数:求正弦值 29
2.2.2 sinh()/sinhf()/sinhl()函数:求双曲正弦值 30
2.2.3 cos()/cosf()/cosl()函数:求余弦值 30
2.2.4 cosh()/coshf()/coshl()函数:求双曲余弦值 31
2.2.5 tan()/tanf()/tanl()函数:求正切值 31
2.2.6 tanh()/tanhf()/tanhl()函数:求双曲正切值 32
2.3 反三角运算 33
2.3.1 asin()/asinf()/asinl()函数:求反正弦值 33
2.3.2 asinh()/asinhf()/asinhl()函数:求反双曲正弦值 34
2.3.3 acos()/acosf()/acosl()函数:求反余弦值 34
2.3.4 acosh()/acoshf()/acoshl()函数:求反双曲余弦值 35
2.3.5 atan()/atanf()/atanl()函数:求反正切值 36
2.3.6 atan2()/atan2f()/atanl()函数:求坐标值的反正切值 37
2.3.7 atanh()/atanhf()/atanhl()函数:求反双曲正切值 37
2.4 指数和对数运算 38
2.4.1 pow()/powf()/powl函数:求n的m次方的值 38
2.4.2 exp()/expf()/expl()函数:求e的x次方的值 39
2.4.3 exp2()/exp2f()/exp2l()函数:2的x的次方的值 39
2.4.4 log()/logf()/logl()函数:求以e为底的对数值 40
2.4.5 log10()/log10f()/log10l()函数:求以10为底的对数值 41
2.5 常量函数 41
2.6 小结 42

第2篇 Cocoa的Foundation框架篇

第3章 数字对象(NSNumber) 45
3.1 整型对象 45
3.1.1 numberWithShort:方法:创建短整型数字对象 45
3.1.2 numberWithUnsignedShort:方法:创建无符号短整型数字对象 45
3.1.3 numberWithInteger:方法:创建整型数字对象 45
3.1.4 numberWithUnsignedInteger:方法:创建无符号整型数字对象 46
3.1.5 numberWithInt:方法:创建整型数字对象 46
3.1.6 numberWithUnsignedInt:方法:创建无符号整型数字对象 46
3.1.7 numberWithLong:方法:创建并初始化长整型数字对象 46
3.1.8 numberWithUnsignedLong:方法:创建并初始化无符号长整型数字对象 46
3.1.9 numberWithLongLong:方法:创建并初始化长长整型数字对象 47
3.1.10 numberWithUnsignedLongLong:方法:创建并初始化无符号长长整型对象 47
3.1.11 initWithShort:方法:初始化短整型数字对象 47
3.1.12 initWithUnsignedShort:方法:初始化无符号短整型数字对象 47
3.1.13 initWithInteger:方法:初始化整型数字对象 47
3.1.14 initWithUnsignedInteger:方法:初始化无符号整型数字对象 47
3.1.15 initWithInt:方法:初始化整型数字对象 48
3.1.16 initWithUnsignedInt:方法:初始化无符号整型数字对象 48
3.1.17 initWithLong:方法:初始化长整型数字对象 48
3.1.18 initWithUnsignedLong:方法:初始化无符号长整型数字对象 48
3.1.19 initWithLongLong:方法:初始化长长整型数字对象 48
3.1.20 initWithUnsignedLongLong:方法:初始化无符号长长整型数字对象 48
3.1.21 shortValue:方法:取短整型数字对象的值 49
3.1.22 unsignedShortValue:方法:取无符号短整型数字对象的值 49
3.1.23 integerValue:方法:取整型数字对象的值 49
3.1.24 unsignedIntegerValue:方法:取无符号整型数字对象的值 49
3.1.25 intValue:方法:取整型数字对象的值 49
3.1.26 unsignedIntValue:方法:取无符号整型数字对象的值 49
3.1.27 longValue:方法:取长整型数字对象的值 49
3.1.28 unsignedLongValue:方法:取无符号长整型数字对象的值 50
3.1.29 longlongValue:方法:取长长整型数字对象的值 50
3.1.30 unsignedLongLongValue:方法:取无符号长长整型数字对象的值 50
3.2 字符型对象 51
3.2.1 numberWithChar:方法:创建并初始化字符型数字对象 51
3.2.2 numberWithUnsignedChar:方法:创建并初始化无符号字符型数字对象 51
3.2.3 initWithChar:方法:初始化字符型对象 51
3.2.4 initWithUnsignedChar:方法:初始化无符号字符型对象 52
3.2.5 charValue:方法:取字符型数字对象的值 52
3.2.6 unsignedCharValue:方法:取无符号字符型数字对象的值 52
3.3 单精度型对象 53
3.3.1 numberWithFloat:方法:创建并初始化单精度型数字对象 53
3.3.2 initWithFloat:方法:初始化单精度型数字对象 53
3.3.3 floatValue:方法:取单精度型数字对象的值 53
3.4 双精度型对象 54
3.4.1 numberWithDouble:方法:创建并初始化一个双精度型数字对象 54
3.4.2 initWithDouble:方法:初始化双精度型数字对象 54
3.4.3 doubleValue:方法:取双精度型数字对象的值 54
3.5 布尔型对象 55
3.5.1 numberWithBool:方法:创建并初始化布尔型数字对象 55
3.5.2 initWithBool:方法:初始化布尔类型对象 56
3.5.3 boolValue:方法:取布尔型数字对象的值 56
3.6 数字对象通用方法 57
3.6.1 isEqualToNumber:方法:比较两对象值是否相等 57
3.6.2 compare:方法:比较值的大小 57
3.7 小结 58

第4章 字符串对象(NSString) 59
4.1 创建及初始化 59
4.1.1 string:方法:创建字符串 59
4.1.2 stringWithstring:方法:用字符串来创建字符串 59
4.1.3 stringWithCstring:方法:创建C字符串 60
4.1.4 stringWithFormat:方法:创建NSLog()格式的字符串 60
4.1.5 stringWithContentsOfFile:方法:将创建的字符串设置为指定文件的内容 61
4.1.6 stringWithContentsOfURL:方法:将创建字符串设置为url的内容 62
4.1.7 stringWithUTF8String:方法:将创建的字符串转换为UTF8字符串 62
4.1.8 init:方法:初始化字符串 63
4.1.9 initWithString:方法:用字符串来初始化字符串 63
4.1.10 initWithCString:方法:初始化字符串 64
4.1.11 initWithFormat:方法:用NSLog()格式初始化字符串 64
4.1.12 initWithContentsOfFile:方法:将初始化的字符串设置为指定文件的内容 65
4.1.13 initWithContentsOfURL:方法:将初始化的字符串设置为url的内容 66
4.1.14 initWithUTF8String:方法:将初始化的字符串转换为UTF8字符串 66
4.2 判断和比较 67
4.2.1 isEqualTostring:方法:比较字符串是否相等 67
4.2.2 hasPrefix:方法:判断字符串是否以某个字符开始 68
4.2.3 hasSuffix:方法:判断字符串是否以某个字符结束 68
4.2.4 compare:方法:比较字符串的大小 69
4.2.5 caseInsensitiveCompare:方法:不考虑大小写的比较大小 70
4.3 大小写转换 71
4.3.1 uppercaseString:方法:小写字母转为大写字母 71
4.3.2 lowercaseString:方法:大写字母转为小写字母 72
4.3.3 capitalizedString:方法:将每个单词的首字母大写 72
4.4 截取 73
4.4.1 substringToIndex:方法:从字符串的开头一直截取到指定的位置 73
4.4.2 substringFromIndex:方法:从指定位置开始截取字符串直到结束 73
4.4.3 substringWithRange:方法:根据指定范围返回子字符串 74
4.4.4 characterAtIndex:方法:返回索引号所在字符串中的字符 75
4.5 转换类型 75
4.5.1 doubleValue:/floatValue:方法:返回转换为浮点类型的值 75
4.5.2 intValue:方法:返回转换为整型的值 76
4.5.3 boolValue:方法:返回转换为布尔类型的值 76
4.6 对文件的处理 77
4.6.1 stringByAppendingPathExtension:方法:为文件添加扩展名 77
4.6.2 pathExtension:方法:获取文件扩展名 78
4.6.3 stringByDeletingPathExtension:方法:删除扩展名 78
4.6.4 writeToFile:方法:将字符串写入到文件 79
4.6.5 writeToURL:方法:将字符串写入到url中 79
4.6.6 stringByExpandingTildeInPath:方法:将“~”替换成系统的主目录 80
4.6.7 stringByAbbreviatingWithTildeInPath:方法:将系统主目录替换为“~” 81
4.6.8 lastPathComponent:方法:获取路径中的文件名 81
4.6.9 stringByDeletingLastPathComponent:方法:获取路径中文件所在的位置 82
4.6.10 stringByAppendingPathComponent:方法:组合位置和文件名 82
4.6.11 isAbsolutePath:方法:判断绝对路径 83
4.7 其他 84
4.7.1 length:方法:求字符串的长度 84
4.7.2 stringByAppendingString:方法:字符串后面增加一个新字符串 84
4.7.3 rangeOfString:方法:查找字符串中是否包含其他字符串 85
4.7.4 stringByTrimmingCharactersInSet:方法:去除空格或回车 86
4.8 可变字符串 86
4.8.1 stringWithCapacity:方法:按照固定长度生成空字符串 86
4.8.2 initWithCapacity:方法:初始化一个固定长度的字符串 87
4.8.3 appendString:方法:在字符串的末尾附加另一个字符串 87
4.8.4 appendFormat:方法:附加一个格式化字符串 88
4.8.5 SetString:方法:将字符串设置为规定的内容 88
4.8.6 insertString:方法:在指定位置插入字符串 89
4.8.7 deleteCharactersInRange:方法:删除指定范围的字符串 89
4.8.8 replaceCharactersInRange:方法:使用字符串代替指定范围的字符串 90
4.8.9 replaceOccurrencesOfString:方法:替换 91
4.9 小结 91

第5章 数组对象(NSArray) 92
5.1 创建及初始化 92
5.1.1 array:方法:创建数组 92
5.1.2 arrayWithArray:方法:通过一个数组创建另一个数组 92
5.1.3 arrayWithContentsOfFile:方法:创建数组将内容设置为指定文件内容 93
5.1.4 arrayWithContentsOfURL:方法:创建数组将内容设置为url指定内容 94
5.1.5 arrayWithObject:方法:创建具有一个元素的数组 95
5.1.6 arrayWithObjects:方法:创建具有多个元素的数组 95
5.1.7 init:方法:初始化数组 96
5.1.8 initWithArray:方法:用数组初始化数组 96
5.1.9 initWithContentsOfFile:方法:初始化数组将内容设置为指定文件内容 97
5.1.10 initWithContentsOfURL:方法:初始化数组将内容设置为url指定内容 98
5.1.11 initWithObjects:方法:初始化具有多个元素的数组 98
5.2 数组元素的操作 99
5.2.1 containsObject:方法:判断数组中是否包含某个元素 99
5.2.2 count:方法:计算元素个数 100
5.2.3 firstObjectCommonWithArray:方法:获取首元素 100
5.2.4 lastObject:方法:获取最后一个元素 101
5.2.5 objectAtIndex:方法:获取在某个位置的数组元素 101
5.2.6 objectAtIndexs:方法:获取数组元素 102
5.2.7 arrayByAddingObject:方法:在数组末尾添加元素 102
5.2.8 arrayByAddingObjectsFromArray:方法:在数组的末尾添加另一个数组 103
5.2.9 subarrayWithRange:方法:数组的一部分创建数组 104
5.2.10 isEqualToArray:方法:比较数组是否相等 104
5.2.11 indexOfObject:方法:返回元素所在的位置 105
5.2.12 indexOfObjectIdenticalTo:方法:返回元素所在的位置 106
5.2.13 componentsJoinedByString:方法:数组转换为字符串 106
5.2.14 componentsSeparatedByString:方法:字符串转换为数组 107
5.2.15 sortedArrayHint:方法:数组转换为数据对象 108
5.2.16 writeToFile:方法:将数组中的内容写入到文件 108
5.2.17 writeToUrl:方法:将数组中的内容写入到url 109
5.2.18 objectEnumerator:方法:数组元素从前向后访问 110
5.2.19 reverseObjectEnumerator:方法:数组元素从后向前访问 111
5.2.20 pathsMatchingExtensions:方法:查看某文件夹下的东西 112
5.2.21 sortedArrayUsingFunction:方法:实现数组元素的简单排序 112
5.3 可变数组 113
5.3.1 arrayWithCapacity:方法:创建一个具有固定长度的可变数组 113
5.3.2 initWithCapacity:方法:初始化一个具有固定长度的可变数组 114
5.3.3 addObject:方法:添加数组元素 114
5.3.4 addObjectsFromArray:方法:用数组创建可变数组 115
5.3.5 removeObject:方法:删除指定的元素 116
5.3.6 removeAllObjects:方法:删除可变数组中的所有元素 116
5.3.7 removeLastObject:方法:删除可变数组中的最后一个元素 117
5.3.8 removeObjectAtIndex:方法:删除指定位置的元素 118
5.3.9 removeObjectsAtIndex:方法:删除可变数组中的元素 119
5.3.10 removeObjectsInRange:方法:删除某个范围内的可变数组中的元素 120
5.3.11 removeObjectsInArray:方法:删除与另一个数组相同的元素 120
5.3.12 replaceObjectAtIndex:方法:替换可变数组中某一位置的元素 121
5.3.13 replaceObjectsAtIndexes:方法:替换可变数组中的多个元素 122
5.3.14 replaceObjectsInRange:方法:替换某一范围的数组元素 123
5.3.15 insertObject:方法:在某一位置插入数组元素 124
5.3.16 insertObjects:方法:在某一位置或范围插入另一数组元素 125
5.3.17 exchangeObjectAtIndex:方法:交换两个元素 126
5.3.18 setArray:方法:设置可变数组中内容 126
5.4 小结 127

第6章 字典对象(NSDictionary) 128
6.1 创建及初始化 128
6.1.1 dictionary:方法:创建字典 128
6.1.2 dictionaryWithContentsOfFile:方法:将创建的字典内容设置为指定文件内容 128
6.1.3 dictionaryWithContentsOfURL:方法:将创建的字典内容设置为指定url内容 129
6.1.4 dictionaryWithDictionary:方法:用字典创建字典 130
6.1.5 dictionaryWithObject:方法:创建具有一个键-值的字典 131
6.1.6 dictionaryWithObjects:方法:创建具有多个键-值的字典 131
6.1.7 dictionaryWithObjectsAndKeys:方法:创建具有多个键-值的字典 132
6.1.8 init:方法:初始化字典 133
6.1.9 initWithContentsOfFile:方法:将初始化的字典内容设置为指定文件内容 133
6.1.10 initWithContentsOfURL:方法:将初始化的字典内容设置为指定url内容 134
6.1.11 initWithDictionary:方法:用字典初始化字典 135
6.1.12 initWithObjects:方法:初始化具有多个键-值的字典 135
6.1.13 initWithObjectsAndKeys:方法:初始化具有多个键-值的字典 136
6.2 访问键-值 137
6.2.1 objectForKey:方法:返回键的值 137
6.2.2 allKeys:方法:返回所有的键 137
6.2.3 allValue:方法:返回所有的值 138
6.2.4 allKeysForObject:方法:返回值所对应的键 139
6.2.5 keyEnumerator:方法:将字典中所有的键放到NSEnumerator对象中 139
6.2.6 objectEnumerator:方法:将字典中所有的值放到一个NSEnumerator对象中 140
6.3 文件的处理 141
6.3.1 fileCreationDate:方法:文件创建日期 141
6.3.2 fileModificationDate:方法:文件修改的日期 141
6.3.3 fileSize:方法:文件的大小 142
6.3.4 fileExtensionHidden:方法:扩展名是否隐藏 142
6.3.5 fileType:方法:文件的类型 143
6.3.6 fileGroupOwnerAccountID:方法:文件所属组标识 144
6.3.7 fileGroupOwnerAccountName:方法:文件所属组名 144
6.3.8 fileHFSCreatorCode:方法:文件分层系统创建者编码 145
6.3.9 fileHFSTypeCode:方法:文件分层系统类型编码 145
6.3.10 fileIsAppendOnly:方法:文件是否只读 146
6.3.11 fileIsImmutable:方法:文件是否可变 147
6.3.12 fileOwnerAccountID:方法:文件所属人标识 147
6.3.13 fileOwnerAccountName:方法:文件所属人 148
6.3.14 filePosixPermissions:方法:权限 148
6.3.15 fileSystemFileNumber:方法:文件系统的文件编号 149
6.3.16 fileSystemNumber:方法:文件系统编号 149
6.3.17 writeToFile:方法:字典内容写入文件中 150
6.3.18 writeToURL:方法:字典内容写入url中 151
6.4 其他 152
6.4.1 count:方法:字典键-值个数 152
6.4.2 isEqualToDictionary:方法:判断字典是否相等 153
6.5 可变字典 153
6.5.1 dictionaryWithCapacity:方法:创建固定长度的可变字典 154
6.5.2 initWithCapacity:方法:初始化固定长度的可变字典 154
6.5.3 setObject:方法:设置键-值 154
6.5.4 setDictionary:方法:用字典设置可变字典中的内容 155
6.5.5 removeAllObjects:方法:删除所有的内容 156
6.5.6 removeObjectForKey:方法:删除键所对应的值 156
6.5.7 removeObjectsForKeys:方法:删除多个键所有的值 157
6.5.8 addEntriesFromDictionary:方法:将字典中的键-值添加到可变字典中 158
6.6 小结 159

第7章 集合(NSSet) 160
7.1 创建以初始化 160
7.1.1 set:方法:创建集合 160
7.1.2 setWithArray:方法:用数组创建集合 160
7.1.3 setWithObject:方法:创建具有一个元素的集合 161
7.1.4 setWithObjects:方法:创建具有多个元素的集合 161
7.1.5 setWithSet:方法:集合创建集合 162
7.1.6 init:方法:初始化集合 163
7.1.7 initWithArray:方法:用数组初始化集合 163
7.1.8 initWithObjects:方法:初始化具有多个元素的集合 164
7.1.9 initWithSet:方法:集合初始化集合 164
7.2 访问元素 165
7.2.1 objectEnumerator:方法:将所有集合中的元素放到NSEnumerator对象中 165
7.2.2 allObjects:方法:返回集合中所有的元素 166
7.2.3 anyObject:方法:返回任意一个元素 167
7.2.4 count:方法:返回元素个数 167
7.3 判断比较 168
7.3.1 containsObject:方法:判断集合中是否包含某个元素 168
7.3.2 member:方法:判断集合中是否包含某个元素并返回 168
7.3.3 isSubsetOfSet:方法:判断一个集合是否是一个集合的子集 169
7.3.4 intersectsSet:方法:判断交集 170
7.3.5 isEqualToSet:方法:判断集合是否相等 170
7.4 可变集合 171
7.4.1 setWithCapacity:方法:创建具有固定长度的可变集合 171
7.4.2 initWithCapacity:方法:初始化具有固定长度的可变集合 172
7.4.3 setSet:方法:通过集合设置可变集合的内容 172
7.4.4 addObject:方法:添加元素 173
7.4.5 addObjectsFromArray:方法:添加数组中的元素 173
7.4.6 removeAllObjects:方法:删除所有元素 174
7.4.7 removeObject:方法:删除指定的元素 175
7.4.8 unionSet:方法:添加集合元素 176
7.4.9 minusSet:方法:去除另一个集合中的元素 176
7.4.10 intersectSet:方法:做交集 177
7.5 小结 178

第8章 文件(NSFileManager、NSFileHandle) 179
8.1 defaultManger:方法:创建文件管理器 179
8.2 文件与目录的操作 179
8.2.1 createFileAtPath:方法:创建文件 179
8.2.2 copyItemAtPath:方法:复制文件 180
8.2.3 moveItemAtPath:方法:移动文件 181
8.2.4 removeItemFileAtPath:方法:删除文件 182
8.2.5 attributesOfItemAtPath:方法:获取文件的属性 182
8.2.6 setAttributes:方法:更改属性 183
8.2.7 currentDirectoryPath:方法:获取当前的目录 184
8.2.8 changeCurrentDirectoryPath:方法:更改目录 185
8.2.9 createDirectoryAtPath:方法:创建目录 186
8.3 获取文件和目录信息 187
8.3.1 contentsAtPath:方法:获取文件中的信息 187
8.3.2 enumeratorAtPath:方法:枚举目录 187
8.3.3 contentsOfDirectoryAtPath:方法:列举目录 188
8.4 判断文件 189
8.4.1 fileExistsAtPath:方法:判断文件是否存在 189
8.4.2 isReadableFile:方法:判断是否能进行读取操作 190
8.4.3 isWritableFileAtPath:方法:判断是否能进行写入操作 190
8.4.4 isDeletableFileAtPath:方法:判断是否可删除 191
8.4.5 isExecutableFileAtPath:方法:判断是否可以执行 192
8.4.6 contentsEqualAtPath:方法:判断是否相等 192
8.5 文件读取 193
8.5.1 init:方法:初始化文件读写对象 193
8.5.2 fileHandleForReadingAtPath:方法:读取时打开文件 194
8.5.3 fileHandleForWritingAtPath:方法:写入时打开文件 194
8.5.4 fileHandleForUpdatingAtPath:方法:更新时打开文件 195
8.5.5 writeData:方法:数据写入文件 196
8.5.6 readDataToEndOfFile:方法:读取数据 197
8.5.7 readDataOfLength:方法:读取固定大小的内容 197
8.5.8 offsetInFile:方法:获取当前偏移量 198
8.5.9 seekToFileOffset:方法:设置当前的偏移量 199
8.5.10 seekToEndOfFile:方法:将偏移量定位到文件尾 199
8.5.11 truncateFileAtOffset:方法:设置字节 200
8.5.12 availableData:方法:返回可用数据 201
8.5.13 closeFile:方法:关闭文件 201
8.6 目录工具函数 202
8.6.1 NSUserName()函数:返回登录名 202
8.6.2 NSFullUserName()函数:返回完整用户名 202
8.6.3 NSHomeDirectory()函数:返回路径 203
8.6.4 NSHomeDirectoryForUser()函数:返回用户的主目录 203
8.6.5 NSTemporaryDirectory()函数:返回临时文件的路径目录 204
8.7 小结 204

第9章 时间和日历(NSDate、NSDateFormatter、NSCalendarDate、NSCalendar、NSTimeZone、NSTimer) 205
9.1 时间的创建及初始化 205
9.1.1 date:方法:创建时间 205
9.1.2 dateWithString:方法:用字符串创建时间 206
9.1.3 dateWithNaturalLanguageString:方法:用字符串创建时间 206
9.1.4 dateWithTimeInterval:方法:用时间间隔创建时间 207
9.1.5 dateWithTimeIntervalSince1970:方法:用时间间隔创建时间 208
9.1.6 dateWithTimeIntervalSinceNow:方法:用时间间隔创建时间 208
9.1.7 dateWithTimeIntervalSinceReferenceDate:方法:用时间间隔创建时间 209
9.1.8 init:方法:初始化时间 209
9.1.9 initWithString:方法:用字符串初始化时间 210
9.1.10 initWithTimeInterval:方法:用时间间隔初始化时间 210
9.1.11 initWithTimeIntervalSince1970:方法:用时间间隔初始化时间 211
9.1.12 initWithTimeIntervalSinceNow:方法:用时间间隔初始化时间 211
9.1.13 initWithTimeIntervalSinceReferenceDate:方法:用时间间隔初始化时间 212
9.2 时间的比较 212
9.2.1 isEqualToDate:方法:比较是否相等 212
9.2.2 compare:方法:比较时间 213
9.2.3 earlierDate:方法:比较哪个时间早 214
9.2.4 laterDate:方法:比较哪个时间晚 214
9.3 获取时间 215
9.3.1 dateByAddingTimeInterval:方法:获取经过时间间隔后的时间 215
9.3.2 distantPast:方法:获取过去的时间 215
9.3.3 distantFuture:方法:获取将来的时间 216
9.3.4 timeIntervalSinceDate:方法:获取两时间的差值 216
9.3.5 timeIntervalSinceNow:方法:获取两时间的差值 217
9.3.6 timeIntervalSince1970:方法:获取两时间的差值 218
9.3.7 timeIntervalSinceReferenceDate:方法:获取两时间的差值 218
9.4 时间和字符串的相互转换 219
9.4.1 init:方法:初始化用于时间转换的对象 219
9.4.2 setDateFormat:方法:设置格式 219
9.4.3 initWithDateFormat:方法:初始化用于时间转换的对象 220
9.5 日历时间的创建及初始化 221
9.5.1 calendarDate:方法:创建日历时间 221
9.5.2 dateWithYear:方法:创建日历时间并设置内容 221
9.5.3 dateWithString:方法:创建日历时间并设置内容及格式 222
9.5.4 init:方法:初始化日历时间 223
9.5.5 initWithYear:方法:初始化日历时间并设置内容 223
9.5.6 initWithString:方法:初始化日历时间并设置内容及格式 224
9.6 获取日历时间信息 224
9.6.1 dayOfWeek:方法:获取天数 225
9.6.2 dayOfMonth:方法:获取天数 225
9.6.3 dayOfYear:方法:获取天数 226
9.6.4 hourOfDay:方法:获取时间 226
9.6.5 minuteOfHour:方法:获取时间 227
9.6.6 secondOfMinute:方法:获取时间 227
9.6.7 monthOfYear:方法:获取时间 228
9.6.8 yearOfCommonEra:方法:获取年 228
9.6.9 dayOfCommonEra:方法:获取天数 229
9.6.10 calendarFormat:方法:获取日历的格式 229
9.6.11 timeZone:方法:获取时区 230
9.6.12 dateByAddingYears:方法:获取日期时间 230
9.7 设置日历时间 231
9.7.1 setCalendarFormat:方法:设置日历的格式 231
9.7.2 setTimeZone:方法:设置时区 231
9.8 日历的使用 232
9.8.1 currentCalendar:方法:创建日历 232
9.8.2 autoupdatingCurrentCalendar:方法:获取日历 233
9.8.3 initWithCalendarIdentifier:方法:初始化日历 233
9.8.4 local:方法:获取区域 234
9.8.5 firstWeekday:方法:获取每周的第一天 235
9.8.6 minimumDaysInFirstWeek:方法:获取天数 235
9.8.7 calendarIdentifier:方法:获取日历 236
9.8.8 setFirstWeekday:方法:设置每周的第一天 236
9.8.9 setMinimumDaysInFirstWeek:方法:设置天数 237
9.9 时区的使用 237
9.9.1 timeZoneWithName:方法:用已知时区创建时区 237
9.9.2 timeZoneWithAbbreviation:方法:用已知时区创建时区 238
9.9.3 timeZoneForSecondsFromGMT:方法:用偏移创建时区 239
9.9.4 initWithName:方法:用已知时区初始化时区 239
9.9.5 systemTimeZone:方法:获取系统的时区 240
9.9.6 localTimeZone:方法:获取本地时区 240
9.9.7 knownTimeZoneNames:方法:返回所有时区 240
9.9.8 name:方法:获取名称 241
9.9.9 abbreviation:方法:获取缩写 242
9.9.10 secondsFromGMT:方法:获取秒数 242
9.10 定时器的使用 243
9.10.1 timerWithTimeInterval:方法:创建定时器 243
9.10.2 initWithFireDate:方法:初始化定时器 244
9.10.3 setFireDate:方法:设置时间 244
9.10.4 fireDate:方法:返回时间 245
9.10.5 invalidate:方法:使定时器无效 245
9.10.6 isValid:方法:判断是否有效 246
9.11 小结 246

第10章 进程、线程、锁(NSProcessInfo、NSThread、NSLock) 247
10.1 使用进程 247
10.1.1 processInfo:方法:创建进程 247
10.1.2 init:方法:初始化进程 247
10.1.3 processName:方法:获取进程的名称 248
10.1.4 environment:方法:获取变量/值 248
10.1.5 globallyUniqueString:方法:生成字符串 249
10.1.6 operatingSystem:方法:获取操作系统信息 250
10.1.7 operatingSystemName:方法:获取操作系统的名称 250
10.1.8 operatingSystemVersionString:方法:获取操作系统的版本信息 251
10.1.9 processIdentifier:方法:获取进程的标识符 251
10.1.10 arguments:方法:获取进程的参数 252
10.1.11 hostName:方法:获取主机名称 252
10.1.12 setProcessName:方法:设置进程的名称 253
10.1.13 processorCount:方法:获取CPU的数目 253
10.2 线程的创建及初始化 254
10.2.1 detachNewThreadSelector:方法:创建线程 254
10.2.2 init:方法:初始化线程 255
10.2.3 initWithTarget:方法:初始化线程 255
10.3 执行线程 256
10.3.1 start:方法:开启线程 256
10.3.2 cancel:方法:取消线程 257
10.3.3 exit:方法:结束线程 258
10.4 获取与设置线程 259
10.4.1 currentThread:方法:获取当前线程 259
10.4.2 threadPriority:方法:获取属性值 259
10.4.3 setThreadPriority:方法:设置属性值 260
10.4.4 name:方法:获取名称 260
10.4.5 setName:方法:设置名称 261
10.4.6 stackSize:方法:获取堆栈 261
10.4.7 setStackSize:方法:设置堆栈 262
10.5 判断线程 262
10.5.1 isMultiThreaded:方法:判断线程是否为主线程 262
10.5.2 isExecuting:方法:判断线程是否在执行 263
10.5.3 isCancelled:方法:判断线程是否取消 264
10.5.4 isFinished:方法:判断线程是否结束 264
10.6 使用互斥锁 265
10.6.1 lock:方法:调用锁 265
10.6.2 unlock:方法:关闭锁 265
10.6.3 trylock:方法:锁定锁 267
10.6.4 lockBeforeDate:方法:在一定时间内获取锁 267
10.7 使用递归锁 268
10.7.1 lock:方法:调用锁 268
10.7.2 unlock:方法:关闭锁 268
10.7.3 tryLock:方法:获取锁 268
10.7.4 lockBeforeDate:方法:在一定时间内获取锁 268
10.8 使用条件锁 270
10.8.1 initWithCondition:方法:初始化条件锁 270
10.8.2 condition:方法:获取条件 270
10.8.3 lockWhenCondition:方法:在条件允许下调用锁 271
10.8.4 unlockWithCondition:方法:在条件允许下关闭锁 271
10.8.5 tryLockWhenCondition:方法:在条件允许下获取锁 272
10.8.6 lockWhenCondition:方法:在条件和时间允许下获取锁 273
10.8.7 tryLock:方法:获取锁 274
10.8.8 lockBeforeDate:方法:在一定时间下获取锁 274
10.8.9 lock:方法:调用锁 275
10.8.10 unlock:方法:关闭锁 275
10.9 小结 276

第11章 数据对象及归档(NSData、NSKeyedArchiver) 277
11.1 数据对象的创建及初始化 277
11.1.1 data:方法:创建数据对象 277
11.1.2 dataWithBytes:方法:用已有数据创建数据对象 277
11.1.3 dataWithContentsOfFile:方法:将数据对象内容设置为指定文件内容 278
11.1.4 dataWithContentsOfURL:方法:将创建对象的内容设置为url指定的内容 279
11.1.5 dataWithData:方法:用已有数据对象创建新的数据对象 280
11.1.6 init:方法:初始化数据对象 280
11.1.7 initWithBytes:方法:用已有数据初始化数据对象 281
11.1.8 initWithContentsOfFile:方法:对数据对象初始化并将其设置为指定文件内容 281
11.1.9 initWithContentsOfURL:方法:对数据对象初始化并将其设置为指定url内容 282
11.1.10 initWithData:方法:用已有数据对象初始化新的数据对象 283
11.2 数据对象的使用 283
11.2.1 bytes:方法:将数据对象转换为字符 283
11.2.2 dataUsingEncoding:方法:将字符串转换为数据对象 284
11.2.3 length:方法:计算数据对象的长度 285
11.2.4 isEqualToData:方法:判断两个数据对象是否相等 285
11.2.5 subdataWithRange:方法:截取数据对象 286
11.2.6 writeToFile:方法:写入文件 286
11.2.7 writeToURL:方法:写入url 287
11.3 可变数据对象 288
11.3.1 dataWithCapacity:方法:创建一个具有固定空间大小的可变数据对象 288
11.3.2 dataWithLength:方法:创建具有固定长度的可变数据对象 288
11.3.3 initWithCapacity:方法:初始化具有固定空间大小的可变数据对象 289
11.3.4 initWithLength:方法:初始化具有固定长度的可变数据对象 289
11.3.5 setData:方法:设置内容 290
11.3.6 setLength:方法:设置长度 290
11.3.7 appendBytes:方法:添加数据 291
11.3.8 appendData:方法:添加数据对象 292
11.3.9 mutableBytes:方法:可变数据对象转化为字符 292
11.3.10 replaceBytesInRange:方法:替换 293
11.3.11 resetBytesInRange:方法:删除 293
11.4 归档 294
11.4.1 archiveRootObject:方法:数据归档 294
11.4.2 unarchiveObjectWithFile:方法:取消归档 295
11.4.3 encodeBool:方法:对布尔类型的数据编码 296
11.4.4 decodeBoolForKey:方法:对布尔类型数据解码 296
11.4.5 encodeInt:方法:对整型数据编码 297
11.4.6 decodeIntForKey:方法:对整型数据解码 297
11.4.7 encodeFloat:/encodeDouble:方法:对浮点型数据编码 299
11.4.8 decodeFloatForKey:/decodeDoubleForKey:方法:对浮点型数据解码 299
11.4.9 encodeObject:方法:对对象进行编码 301
11.4.10 decodeObjectForKey:方法:对对象进行解码 301
11.4.11 archivedDataWithRootObject:方法:将其他类型的数据进行转换 302
11.4.12 initForWritingWithMutableData:方法:初始化 303
11.4.13 initForReadingWithData:方法:初始化 304
11.5 小结 304

第3篇 Cocoa的Application框架篇

第12章 窗口和颜色(NSWindow、NSColor) 307
12.1 获取窗口信息 307
12.1.1 aspectRatio:方法:获取窗口的纵横比 307
12.1.2 orderedIndex:方法:获取索引 307
12.1.3 title:方法:获取窗口的标题 308
12.1.4 miniwindowTitle:方法:获取窗口最小化后的标题 308
12.1.5 frame:方法:获取窗口的位置和大小 309
12.1.6 minSize:方法:获取窗口的最小尺寸 310
12.1.7 maxSize:方法:获取窗口的最大尺寸 310
12.1.8 miniwindowImage:方法:获取窗口最小化后的图片 311
12.1.9 backgroundColor:方法:获取窗口的背景颜色 311
12.1.10 childWindows:方法:获取子窗口 312
12.1.11 alphaValue:方法:获取窗口的透明度值 312
12.2 设置窗口 313
12.2.1 setAspectRatio:方法:设置窗口的纵横比 313
12.2.2 setIsVisible:方法:设置窗口是否可见 314
12.2.3 setTitle:方法:设置窗口标题 314
12.2.4 setMiniwindowTitle:方法:设置窗口最小化后的标题 315
12.2.5 setIsMiniaturized:方法:设置窗口是否最小化 315
12.2.6 setIsZoomed:方法:设置窗口是否最大化 316
12.2.7 setFrame:方法:设置窗口的位置和大小 317
12.2.8 setFrameOrigin:方法:设置窗口的位置 318
12.2.9 setFrameTopLeftPoint:方法:设置窗口的位置 319
12.2.10 setMinSize:方法:设置窗口的最小尺寸 319
12.2.11 setMaxSize:方法:设置窗口的最大尺寸 320
12.2.12 setMiniwindowImage:方法:设置窗口最小化后的图片 321
12.2.13 setBackgroundColor:方法:设置窗口的背景颜色 322
12.2.14 setCanHide:方法:设置窗口是否可以隐藏 322
12.2.15 setAlphaValue:方法:设置窗口的透明度值 324
12.2.16 disableFlushWindow:方法:将窗口设置为禁用的 324
12.2.17 setHasShadow:方法:设置窗口的阴影 325
12.3 判断窗口 326
12.3.1 isVisible:方法:判断窗口是否可见 326
12.3.2 isMiniaturized:方法:判断窗口是否最小化 326
12.3.3 isZoomed:方法:判断窗口是否最大化 327
12.3.4 canHide:方法:判断窗口是否可以隐藏 327
12.3.5 hasShadow:方法:判断窗口是否有阴影 329
12.3.6 isMiniaturizable:方法:判断窗口是否有最小化按钮 329
12.3.7 hasTitleBar:方法:判断窗口是否有工具栏 330
12.4 创建自定义颜色对象 330
12.4.1 colorWithCalibratedRed:方法:用标准RGB分量创建颜色对象 330
12.4.2 colorWithCalibratedWhite:方法:用标准灰度分量创建颜色对象 331
12.4.3 colorWithCalibratedHue:方法:用标准HSB分量创建颜色对象 331
12.4.4 colorWithDeviceCyan:方法:用设备CMYB分量创建颜色对象 332
12.4.5 colorWithDeviceRed:方法:用设备RGB分量创建颜色对象 333
12.4.6 colorWithDeviceWhite:方法:用设备灰度分量创建颜色对象 333
12.4.7 colorWithDeviceHue:方法:用设备HSB分量创建颜色对象 334
12.4.8 colorWithPatternImage:方法:用图像创建颜色对象 334
12.5 创建颜色对象 335
12.5.1 redColor:方法:用红色创建颜色对象 335
12.5.2 greenColor:方法:用绿色创建颜色对象 335
12.5.3 blueColor:方法:用蓝色创建颜色对象 336
12.5.4 cyanColor:方法:用青色创建颜色对象 336
12.5.5 magentaColor:方法:用紫红色创建颜色对象 337
12.5.6 yellowColor:方法:用黄色创建颜色对象 337
12.5.7 blackColor:方法:用黑色创建颜色对象 338
12.5.8 brownColor:方法:用棕色创建颜色对象 338
12.5.9 darkGrayColor:方法:用深灰色创建颜色对象 338
12.5.10 grayColor:方法:用灰色创建颜色对象 339
12.5.11 lightGrayColor:方法:用浅灰色创建颜色对象 339
12.5.12 orangeColor:方法:用橙色创建颜色对象 340
12.5.13 purpleColor:方法:用紫色创建颜色对象 340
12.5.14 whiteColor:方法:用白色创建颜色对象 341
12.6 获取颜色分量 341
12.6.1 redComponent:方法:获取红色的分量 341
12.6.2 greenComponent:方法:获取绿色的分量 342
12.6.3 blueComponent:方法:获取蓝色的分量 342
12.6.4 cyanComponent:方法:获取青色的分量 343
12.6.5 magentaComponent:方法:获取紫红色分量 343
12.6.6 yellowComponent:方法:获取黄色分量 344
12.6.7 blackComponent:方法:获取黑色的分量 344
12.6.8 whiteComponent:方法:获取白色的分量 345
12.6.9 alphaComponent:方法:获取透明度分量 345
12.6.10 hueComponent:方法:获取色调的分量 346
12.6.11 saturationComponent:方法:获取饱和度的分量 346
12.6.12 brightnessComponent:方法:获取亮度分量 347
12.6.13 patternImage:方法:获取图像信息 347
12.7 小结 348

第13章 自定义视图(NSView) 349
13.1 initWithFrame:方法:初始化自定义视图 349
13.2 获取与设置自定义视图信息 349
13.2.1 frame:方法:获取自定义视图的框架 349
13.2.2 setFrame:方法:设置自定义视图框架 350
13.2.3 frameRotation:方法:获取自定义视图的旋转度数 351
13.2.4 setFrameRotation:方法:设置自定义视图旋转度数 352
13.2.5 setFrameOrigin:方法:设置自定义视图的位置 352
13.2.6 setFrameSize:方法:设置自定义视图的大小 353
13.2.7 bounds:方法:获取自定义视图框架 354
13.2.8 setBounds:方法:设置自定义视图框架 355
13.2.9 boundsRotation:方法:获取自定义视图的旋转度数 356
13.2.10 setBoundsRotation:方法:设置自定义视图旋转的度数 357
13.2.11 setBoundsOrigin:方法:设置视图的位置 358
13.2.12 setBoundsSize:方法:设置视图的大小 358
13.2.13 subviews:方法:获取子视图 359
13.2.14 setPostsFrameChangedNotifications:方法:设置是否接收视图的变化 360
13.2.15 setPostsBoundsChangedNotifications:方法:设置是否接收视图的变化 361
13.2.16 printJobTitle:方法:获取输出标题 362
13.3 drawRect:方法:绘图 362
13.4 判断自定义视图 363
13.4.1 postsFrameChangedNotifications:方法:判断是否接收视图变换的消息 363
13.4.2 postsBoundsChangedNotifications:方法:判断是否接收视图变换的消息 364
13.4.3 isFlipped:方法:判断视图是否翻转 365
13.4.4 isRotatedFromBase:方法:判断视图是否旋转 366
13.4.5 isRotatedOrScaledFromBase:方法:判断视图是否旋转或缩放 367
13.4.6 canDraw:方法:判断视图是否绘制 367
13.4.7 isOpaque:方法:判断视图是否不透明 368
13.5 操作自定义视图 369
13.5.1 addSubview:方法:添加视图 369
13.5.2 removeFromSuperview:方法:删除视图 370
13.5.3 replaceSubview:方法:替换视图 371
13.6 小结 372

第14章 文本框和文本视图(NSTextField、NSTextView) 373
14.1 获取与设置文本框信息 373
14.1.1 stringValue:方法:获取文本框的字符串 373
14.1.2 setStringValue:方法:设置文本框中的字符串 374
14.1.3 backgroundColor:方法:获取文本框的背景颜色 374
14.1.4 setBackgroundColor:方法:设置文本框的背景颜色 375
14.1.5 textColor:方法:获取字符串的颜色 376
14.1.6 setTextColor:方法:设置字符串的颜色 376
14.1.7 setImportsGraphics:方法:设置是否可以将图像拖到文本框 377
14.1.8 setEditable:方法:设置文本框是否可以编译 378
14.1.9 bezelStyle:方法:获取文本框边框的风格 379
14.1.10 setBezelStyle:方法:设置文本框边框的风格 379
14.1.11 setBezeled:方法:设置文本框是否接受bezeled边框 380
14.1.12 setBordered:方法:设置文本框是否接受黑边框 381
14.2 判断文本框信息 382
14.2.1 importsGraphics:方法:判断是否可以将图像拖到文本框 382
14.2.2 isEditable:方法:判断文本框是否可以编辑 383
14.2.3 isBezeled:方法:判断文本框是否接受了bezeled边框 384
14.2.4 isBordered:方法:判断文本框是否接受了黑边框 385
14.2.5 acceptsFirstResponder:方法:判断文本框是否可以编辑 386
14.3 initWithFrame:方法:创建并初始化文本视图 386
14.4 获取与设置文本视图信息 387
14.4.1 backgroundColor:方法:获取文本视图的颜色 388
14.4.2 setBackgroundColor:方法:设置文本视图的背景颜色 388
14.4.3 setImportsGraphics:方法:设置文件是否可以导入到文本视图 389
14.4.4 setAcceptsGlyphInfo:方法:设置文本视图是否接受字形信息 390
14.4.5 setAlignment:方法:设置文本视图内容的对齐方式 390
14.4.6 insertionPointColor:方法:获取插入点的颜色 391
14.4.7 setInsertionPointColor:方法:设置插入点的颜色 392
14.4.8 setAllowsUndo:方法:设置文本视图是否可以撤销 393
14.4.9 selectedTextAttributes:方法:获取用于指示选择的属性 394
14.4.10 setSelectedTextAttributes:方法:设置文本视图用于指示选择的属性 394
14.4.11 textContainer:方法:获取文本框的文本容器 395
14.4.12 acceptableDragTypes:方法:获取文本视图的数据类型 396
14.4.13 markedTextAttributes:方法:获取绘制标记的文本属性 397
14.4.14 setMarkedTextAttributes:方法:设置绘制标记的文本属性 397
14.4.15 setSmartInsertDeleteEnabled:方法:设置选择字符串周围的空间 398
14.4.16 markedRange:方法:获取被标记文本的范围 399
14.4.17 selectedRange:方法:获取选中文本的范围 400
14.4.18 setSelectedRange:方法:设置文本的选中范围 400
14.4.19 typingAttributes:方法:获取新文本的属性 401
14.4.20 setTypingAttributes:方法:设置新文本的属性 402
14.5 判断文本视图的信息 403
14.5.1 importsGraphics:方法:判断文件是否可以导入到文本视图 403
14.5.2 acceptsGlyphInfo:方法:判断文本视图是否接受字形信息 404
14.5.3 allowsUndo:方法:判断文本视图是否启用撤销 405
14.5.4 smartInsertDeleteEnabled:方法:判断选择字符串周围的空间 406
14.6 小结 407

第15章 图像、图像视图(NSImage、NSImageView) 408
15.1 加载图像 408
15.1.1 imageNamed:方法:加载Supporting Files文件夹中的图片 408
15.1.2 initWithContentsOfURL:方法:加载URL中的图像 409
15.1.3 initWithContentsOfFile:方法:加载文件中的图片 410
15.1.4 initWithSize:方法:加载图像的大小 411
15.2 获取与设置图像信息 411
15.2.1 size:方法:获取图像的大小 411
15.2.2 setSize:方法:设置图像的大小 412
15.2.3 setFlipped:方法:设置图像是否倒立 413
15.2.4 cacheMode:方法:获取图像的缓存模式 414
15.2.5 setCacheMode:方法:设置图像的缓存模式 415
15.2.6 backgroundColor:方法:获取图像的背景色 415
15.2.7 setBackgroundColor:方法:设置图像的背景色 416
15.2.8 name:方法:获取图像的名称 416
15.2.9 setName:方法:设置图像的名称 417
15.2.10 setTemplate:方法:设置图像是否表示一个模板图像 417
15.2.11 imageTypes:方法:获取图像类型 418
15.2.12 imageUnfilteredTypes:方法:获取图像类型 419
15.2.13 imageFileTypes:方法:获取文件类型 419
15.2.14 imageUnfilteredFileTypes:方法:获取文件类型 420
15.2.15 imagePasteboardTypes:方法:获取粘贴板类型 421
15.2.16 imageUnfilteredPasteboardTypes:方法:获取粘贴板类型 422
15.2.17 representations:方法:获取图像表示 422
15.3 判断图像信息 423
15.3.1 isFlipped:方法:判断图像是否倒立 423
15.3.2 prefersColorMatch:方法:判断图像颜色匹配 424
15.3.3 isTemplate:方法:判断图像是否为模板图像 424
15.4 获取与设置图像视图 425
15.4.1 image:方法:获取显示图像的信息 425
15.4.2 setImage:方法:设置显示的图像 426
15.4.3 imageAlignment:方法:获取图像的对齐方式 427
15.4.4 setImageAlignment:方法:设置图像的对齐方式 428
15.4.5 imageFrameStyle:方法:获取框架的风格 429
15.4.6 setImageFrameStyle:方法:设置框架的风格 430
15.4.7 imageScaling:方法:获取图像缩放的方式 431
15.4.8 setImageScaling:方法:设置图像缩放方式 432
15.4.9 isEditable:方法:判断图像视图是否可以编辑 433
15.4.10 setEditable:方法:设置图像视图是否编辑 434
15.4.11 allowsCutCopyPaste:方法:判断图像是否可复制、粘贴等操作 435
15.4.12 setAllowsCutCopyPaste:方法:设置图像是否可复制、粘贴等操作 435
15.4.13 animates:方法:判断图像视图是否播放动画 436
15.4.14 setAnimates:方法:设置图像视图是否播放动画 437
15.5 小结 438

第16章 表视图(NSTableView) 439
16.1 获取表视图信息 439
16.1.1 rowHeight:方法:获取表视图的行高 439
16.1.2 headerView:方法:获取NSTableHeaderView对象 440
16.1.3 intercellSpacing:方法:获取表单元之间的间距 440
16.1.4 numberOfColumns:方法:获取表视图中的列数 441
16.1.5 numberOfRows:方法:获取表视图的行数 442
16.1.6 numberOfSelectedColumns:方法:获取选中的列数 442
16.1.7 numberOfSelectedRows:方法:获取选择的行数 443
16.1.8 rowSizeStyle:方法:获取行风格 444
16.2 设置表视图的信息 445
16.2.1 setRowHeight:方法:设置表视图的行高 445
16.2.2 setIntercellSpacing:方法:设置表单元之间的间距 446
16.2.3 setRowSizeStyle:方法:设置行风格 447
16.2.4 setAllowsColumnReordering:方法:设置用户是否可以重新排列列标题 448
16.2.5 setAllowsColumnResizing:方法:设置是否可以调整列标题 449
16.2.6 setAllowsColumnSelection:方法:设置是否可以选择一整列 450
16.2.7 setAllowsTypeSelect:方法:设置是否可以通过按键字符进行选择 451
16.2.8 setAllowsMultipleSelection:方法:设置是否允许选择多行或多列 452
16.3 判断表视图信息 454
16.3.1 allowsColumnReordering:方法:判断用户是否可以重新排列列标题 454
16.3.2 allowsColumnResizing:方法:判断是否可以调整列标题 455
16.3.3 allowsColumnSelection:方法:判断是否可以选择一整列 456
16.3.4 allowsEmptySelection:方法:判断是否允许有0个行或列被选中 457
16.3.5 allowsTypeSelect:方法:判断是否可以通过按键字符进行选择 457
16.3.6 allowsMultipleSelection:方法:判断是否允许选择多行或多列 458
16.4 小结 459

第17章 常见控件(NSButton、NSDatePicker、NSProgressIndicator、NSComboBox) 460
17.1 按钮控件(NSButton) 460
17.1.1 title:方法:获取按钮的标题 460
17.1.2 setTitle:方法:设置按钮的标题 461
17.1.3 image:方法:获取按钮的图像 461
17.1.4 setImage:方法:设置按钮的图像 462
17.1.5 isTransparent:方法:判断按钮是否透明 463
17.1.6 setTransparent:方法:设置按钮是否透明 464
17.1.7 showsBorderOnlyWhileMouseInside:方法:判断边框的显示 464
17.1.8 setShowsBorderOnlyWhileMouseInside:方法:设置边框的显示 465
17.1.9 setButtonType:方法:设置按钮的显示类型 466
17.2 日期选择器(NSDatePicker) 467
17.2.1 datePickerStyle:方法:获取日期选择器的样式 468
17.2.2 setDatePickerStyle:方法:设置日期选择器的样式 469
17.2.3 dateValue:方法:获取日期选择器的起始日期值 469
17.2.4 setDateValue:方法:设置日期选择器的起始日期值 470
17.2.5 datePickerMode:方法:获取日期选择器的模式 471
17.2.6 setDatePickerMode:方法:设置日期选择器的模式 472
17.2.7 calendar:方法:获取日期选择器的日历 472
17.2.8 setCalendar:方法:设置日期选择器的日历 473
17.2.9 locale:方法:获取日期选择器的语言环境 474
17.2.10 setLocale:方法:设置日期选择器的语言环境 475
17.2.11 timeZone:方法:获取日期选择器的时区 475
17.2.12 setTimeZone:方法:设置日期选择器的时区 476
17.2.13 maxDate:方法:获取日期选择器的最大日期 477
17.2.14 setMaxDate:方法:设置日期选择器的最大日期 478
17.2.15 minDate:方法:获取日期选择器的最小日期 478
17.2.16 setMinDate:方法:设置日期选择器的最小日期 479
17.3 进度条(NSProgressIndicator) 480
17.3.1 style:方法:获取进度条的风格 480
17.3.2 setStyle:方法:设置进度条的风格 481
17.4 组合框(NSComboBox) 482
17.4.1 hasVerticalScroller:方法:判断组合框是否有垂直滚动条 482
17.4.2 setHasVerticalScroller:方法:设置组合框是否有垂直滚动条 483
17.4.3 numberOfVisibleItems:方法:获取可见项目的最大数量 484
17.4.4 setNumberOfVisibleItems:方法:设置可见项目的最大数量 485
17.4.5 intercellSpacing:方法:获取下拉列表项之间的间距 486
17.4.6 setIntercellSpacing:方法:设置下拉列表项之间的间距 486
17.4.7 itemHeight:方法:获取下拉列表中项目的高度 487
17.4.8 setItemHeight:方法:获取下拉列表中项目的高度 488
17.4.9 addItemWithObjectValue:方法:添加一个对象 489
17.4.10 addItemsWithObjectValues:方法:添加多个对象对 490
17.4.11 insertItemWithObjectValue:方法:插入对象 491
17.4.12 objectValues:方法:获取下拉列表中的项 492
17.4.13 numberOfItems:方法:获取下拉列表中项目总数 493
17.4.14 removeAllItems:方法:删除所有的项目 493
17.4.15 removeItemWithObjectValue:方法:删除某一项目 494
17.4.16 selectItemWithObjectValue:方法:选择某一项目 495
17.5 小结 496

前言/序言


Objective-C开发精要:从入门到精通的实践指南 Objective-C,作为Apple生态系统中构建高性能、用户友好的应用程序的基石,其重要性不言而喻。无论您是初涉编程领域的新手,还是寻求深化技能的资深开发者,掌握Objective-C都意味着开启了通往iOS、macOS、watchOS和tvOS开发大门的钥匙。本书旨在提供一套全面、深入的学习路径,帮助您系统地掌握Objective-C的语法、核心概念以及在实际开发中的应用技巧,从而自信地构建出色的Apple平台应用程序。 第一部分:Objective-C语言核心基础 本部分将带领您一步步构建坚实的Objective-C语言基础,理解其独特的设计哲学和强大之处。 Objective-C的起源与定位: 我们将首先简要回顾Objective-C的演进历程,理解它如何融合了C语言的强大与Smalltalk的面向对象思想。这有助于我们认识到Objective-C在现代编程语言中的独特地位,以及它为何能成为Apple平台开发的首选。我们将探讨其“消息传递”的机制,这是Objective-C与许多其他面向对象语言在底层实现上的关键区别。 语法与基本结构: 基本数据类型与变量:深入讲解Objective-C支持的各种基本数据类型(如`NSInteger`, `CGFloat`, `BOOL`等)以及如何声明、初始化和使用变量。我们将强调Objective-C对C语言类型的扩展以及其在内存管理中的意义。 控制流语句:全面覆盖`if-else`、`switch`、`for`循环、`while`循环、`do-while`循环等,并结合Objective-C特有的语法形式进行讲解。我们将通过实际的编程示例,演示如何利用这些语句构建复杂的程序逻辑。 函数与方法:理解C语言函数的概念,并深入剖析Objective-C中方法的定义、调用、参数传递和返回值。特别地,我们将详述Objective-C方法调用的消息传递机制,解释`[receiver message]`的背后原理,以及动态绑定的优势。 对象与类:这是Objective-C的灵魂所在。我们将详细讲解类的声明(`.h`文件)和实现(`.m`文件),包括实例变量、类变量、属性(Properties)的声明与访问。我们将深入探讨封装、继承和多态这三大面向对象的核心概念,并用Objective-C的语法进行具体实践。 消息传递的深入理解:除了基本的调用方式,我们将进一步探讨消息传递的动态性,包括`performSelector:`家族方法、消息转发(Message Forwarding)机制,以及它们在实现运行时灵活性和动态编程方面的作用。 内存管理: ARC(Automatic Reference Counting):全面讲解Objective-C现代内存管理的核心——ARC。我们将详细解释`__strong`, `__weak`, `__unsafe_unretained`, `__autoreleasing`等ARC关键字的作用,以及在不同场景下如何正确使用它们来避免内存泄漏和悬空指针。我们将通过对比ARC与手动引用计数(MRC)的异同,让读者深刻理解ARC的优势和使用细节。 对象生命周期管理:理解对象的创建、保留(Retain)、释放(Release)和自动释放(Autorelease)的整个生命周期。我们将通过大量的示例,展示如何通过ARC来有效地管理对象的内存,确保应用程序的稳定运行。 Foundation框架概览: Foundation框架是Objective-C开发的基础库,提供了大量核心的类和函数。我们将介绍: 对象模型:`NSObject`协议,它是所有Objective-C对象的根。 集合类:`NSArray`, `NSMutableArray`, `NSDictionary`, `NSMutableDictionary`, `NSSet`, `NSMutableSet`等,以及它们的常用操作和性能考量。 字符串处理:`NSString`, `NSMutableString`等,以及常用的字符串操作方法。 数值类型:`NSNumber`对象,以及如何方便地将基本类型包装成对象。 日期与时间:`NSDate`, `NSCalendar`, `NSDateFormatter`等。 文件与目录操作:`NSFileManager`等。 URL与网络:`NSURL`等。 第二部分:Objective-C在实际开发中的应用 掌握了语言基础后,本部分将引导您将Objective-C应用于实际的应用程序开发场景,学习如何构建功能丰富、交互友好的用户界面。 面向对象设计的进阶: 协议(Protocols):深入理解协议的作用,如何定义和实现协议,以及如何通过协议实现多重继承的优势。我们将探讨协议在代理设计模式(Delegate Pattern)、委托(Delegation)、数据源(Data Source)等常见开发模式中的应用。 分类(Categories):学习如何使用分类为现有类添加新方法,以及如何通过分类进行代码组织和扩展。我们将讨论分类的注意事项,例如方法命名冲突和运行时行为。 延展(Extensions):理解类延展(Class Extension)和分类的区别,以及如何利用类延展来访问私有实例变量或声明私有方法。 Cocoa Touch框架核心组件(iOS开发视角): 我们将以iOS开发为例,重点介绍Objective-C与Cocoa Touch框架的结合。 UIKit框架: 视图(Views)与视图控制器(View Controllers):深入理解`UIView`和`UIViewController`的生命周期,以及它们之间的关系。我们将学习如何创建和管理视图层级,如何响应用户交互,以及如何在视图控制器之间进行导航。 UI控件:详细讲解各种常用的UI控件,如`UILabel`, `UIButton`, `UITextField`, `UITextView`, `UITableView`, `UICollectionView`, `UIScrollView`, `UIImageView`等,包括它们的属性、方法和事件处理。 Auto Layout与约束:掌握使用Auto Layout和NSLayoutConstraint来创建自适应界面的技术,确保应用在不同尺寸的设备上都能有良好的显示效果。 手势识别(Gesture Recognizers):学习如何集成和自定义手势,如点击、滑动、捏合、旋转等。 动画(Animations):掌握使用Core Animation框架实现各种平滑、流畅的UI动画效果,提升用户体验。 数据持久化: UserDefaults:用于存储少量用户偏好设置。 文件存储:直接在文件系统中读写数据。 Core Data:Apple提供的强大对象图和持久化框架,用于管理大量结构化数据。我们将讲解Core Data的基本概念、模型创建、数据存储、检索和更新。 Realm:作为Core Data之外的一种流行的移动数据库解决方案,我们将对其进行简要介绍。 网络编程: `URLSession`:学习如何使用`URLSession`进行HTTP请求,包括GET, POST等请求方式,数据上传和下载,以及错误处理。 JSON解析:掌握使用`NSJSONSerialization`或第三方库(如SwiftyJSON,虽然是Swift的,但概念相通)来解析和生成JSON数据。 多线程与并发: GCD(Grand Central Dispatch):深入理解GCD的概念,包括队列(Queues)、任务(Tasks)以及如何在主线程和后台线程执行操作,以提高应用程序的响应速度和性能。 NSOperation与NSOperationQueue:学习如何使用GCD的替代方案,提供更灵活的任务管理和依赖关系设置。 通知中心(NotificationCenter):理解如何使用通知机制在应用程序的不同部分之间进行解耦通信。 macOS开发基础(可选,根据读者兴趣): 如果您对macOS开发感兴趣,我们将简要介绍如何使用Objective-C和AppKit框架来构建桌面应用程序,包括窗口、菜单、控件和事件处理。 第三部分:性能优化与高级主题 为了帮助您构建出色的应用程序,本书还将涵盖性能优化、调试技巧以及一些高级开发实践。 性能分析与优化: Instruments工具:介绍Xcode自带的Instruments工具,用于性能分析,如CPU使用率、内存分配、能耗等,并学习如何定位性能瓶颈。 常见的性能优化策略:讲解如何在UI渲染、数据处理、内存使用等方面进行优化。 调试技巧: 断点(Breakpoints):熟练使用各种断点,包括条件断点、日志断点等。 Xcode调试器:掌握使用Xcode调试器进行变量查看、表达式求值、调用堆栈分析等。 异常处理:学习如何处理Objective-C中的异常。 设计模式: 介绍几种在Objective-C开发中常见且实用的设计模式,如单例模式(Singleton)、工厂模式(Factory)、观察者模式(Observer)、MVC(Model-View-Controller)等,并结合实例进行讲解。 版本控制(Git): 简要介绍Git在团队协作和代码管理中的重要性。 结语 Objective-C是一门充满活力和创造力的语言,它的强大之处在于其灵活性、表达能力以及与Apple强大生态系统的深度融合。通过本书的学习,您将不仅能够熟练掌握Objective-C的语法和核心概念,更能将其转化为实际的开发技能,自信地踏上构建卓越Apple平台应用程序的旅程。我们鼓励您在学习过程中不断实践,积极探索,享受编程带来的乐趣与成就感。

用户评价

评分

这是一本真正做到“以读者为中心”的书籍。在阅读过程中,我感觉作者仿佛就坐在我旁边,一步步地引导我理解 Objective-C 的函数世界。书中的例子都非常贴近实际开发中的痛点,比如在处理用户界面更新时,如何有效地使用 `performSelector` 系列方法避免线程问题;或者在进行数据持久化时,如何合理运用 `NSCoding` 和 `NSKeyedArchiver` 来实现对象的归档和解档。我尤其赞赏书中关于内存管理的讲解,虽然 ARC 已经大大简化了内存管理,但理解对象的生命周期、引用计数的变化,以及各种强弱引用对内存的影响,对于编写健壮的代码仍然至关重要。书中通过具体的函数示例,清晰地展示了不同引用类型在对象创建、传递和销毁时的内存变化,这对于我理解一些复杂的循环引用问题非常有帮助。我之前在开发一个涉及到大量图片缓存的应用时,就遇到了内存爆涨的问题,查阅了很多资料都无法根治。后来,我发现这本书在讲解 `__weak` 和 `__strong` 修饰符时,有一个关于图片加载和回调的实例,非常生动地演示了如何利用 `__weak` 来打破循环引用,从而避免内存泄漏。这本书就像一个经验丰富的“老炮”,用最接地气的方式,为你一一解开那些曾经让你头疼的难题。

评分

对于长期从事 Objective-C 开发的开发者来说,很多基础的函数可能已经烂熟于心,但这本书仍然能提供新的视角和深度。我一直对 Objective-C 的消息传递机制和方法调用的底层原理感到好奇,但相关的资料往往晦涩难懂,或者需要花费大量精力去理解。这本书中关于消息转发(Message Forwarding)和动态方法解析(Dynamic Method Resolution)的章节,用非常清晰的图示和由浅入深的讲解,把我一直以来模糊的概念给彻底打通了。它不是简单地告诉你 `objc_msgSend` 是做什么的,而是详细解释了方法查找的过程,包括类方法查找、父类方法查找,以及在找不到方法时,消息转发是如何介入的。这本书还提供了一个非常有趣的实例,演示了如何利用消息转发来实现一个简单的 AOP(面向切面编程)效果,这让我眼前一亮。我之前在做一些性能优化的工作时,经常需要分析方法的调用栈和执行时间,但总是觉得对底层机制理解不够深入,导致优化效果不佳。看了这本书之后,我对方法的调用流程有了更深刻的认识,再结合 Xcode 的 Instruments 工具,能够更精准地定位性能瓶颈。这本书的价值在于,它不仅教你“如何用”,更教你“为何这样用”,让你对 Objective-C 的掌握上升到一个新的层次。

评分

坦白说,当我拿到这本《Objective-C函数速查实例手册》时,心里并没有抱有多大的期待。市面上关于 Objective-C 的技术书籍琳琅满目,很多都大同小异,要么过于理论化,要么内容陈旧,无法跟上 Swift 盛行的时代步伐。然而,这本书却给了我一个大大的惊喜。它最大的优点在于其“速查”和“实例”的结合,非常实用。当我遇到一个不太熟悉的函数,或者对某个函数的某个特定行为有疑问时,这本书就成了我的首选参考。它不会让你从头开始阅读,而是让你能够快速定位到你想了解的函数,然后通过简洁明了的解释和贴切的示例,迅速解决问题。我特别欣赏书中对一些常用但容易被忽略的函数细节的强调,比如字符串处理中的一些边界情况,或者集合类型在不同操作下的性能差异。这些看似微小的点,在实际开发中往往能避免不少潜在的 Bug。有一次,我在处理一个包含大量用户输入的文本字段时,遇到了一个奇怪的 Crash,排查了很久都没有找到根源。最后翻到这本书关于 `NSString` 和 `NSMutableString` 的部分,发现是因为在循环中频繁修改 `NSMutableString` 导致了性能瓶颈和潜在的内存问题。书中的示例演示了如何使用更高效的方法来优化字符串的构建,让我茅塞顿开。这本书就像一个精干的助手,在你急需答案的时候,总能第一时间给出准确有效的解决方案,而且这种解决方案不是停留在表面,而是有理有据,让你信服。

评分

在Swift成为主流的今天,选择一本深入讲解Objective-C函数的手册,需要一定的勇气,也需要这本书本身具有非凡的价值。而《Objective-C函数速查实例手册》恰恰做到了这一点。它没有被Swift的光芒所掩盖,反而凭借其扎实的内容和独特的视角,在Objective-C的领域里独树一帜。这本书的编写风格非常严谨,逻辑清晰,条理分明。从基础的数据类型函数,到复杂的对象管理函数,再到系统级别的API调用,几乎涵盖了Objective-C开发中常用的方方面面。我特别喜欢它对一些“隐藏”功能的挖掘,比如通过一些鲜为人知的函数组合,能够实现一些看似不可能的功能,或者极大地提升代码的效率。书中提供的“速查”部分,就像一个字典,能够让你在遇到问题时,快速找到相关的函数,并通过简洁的描述和代码示例,迅速掌握其用法。而“实例”部分,则将这些函数置于真实的开发场景中,让你看到它们是如何被巧妙地运用,从而解决实际问题。我之前在做一个需要与原生C/C++库交互的项目时,就遇到了很多关于数据类型转换和内存管理的难题,查阅了很多零散的资料,都无法形成完整的解决方案。后来,我发现这本书中关于 C 语言数据类型与 Objective-C 数据类型之间转换的章节,以及对 `NSData` 的深入讲解,为我提供了宝贵的参考。它让我能够更自信地处理跨语言的API调用,并确保数据的正确性和内存的安全。总而言之,这不仅是一本函数手册,更是一本能够帮助你提升Objective-C底层理解和实际开发能力的宝典。

评分

这本书真的颠覆了我对 Objective-C 函数的认知。之前我总是觉得 Objective-C 的函数概念有点抽象,很多时候是看例子才模模糊糊理解,但这本书不一样,它把每一个核心函数都剖析得淋漓尽致,而且每一讲都配有贴近实际开发场景的实例。我尤其喜欢它对 Block 的讲解,以前觉得 Block 语法有点绕,看了这本书之后,我才真正明白它在异步操作、回调函数等场景下的强大威力。书中的代码示例都非常精炼,没有冗余,直击要点,而且解释得也很到位,让我能迅速掌握函数的用法和背后的原理。我之前在做一个涉及到多线程数据同步的项目时,被一个复杂的锁机制卡住了很久,花了大量时间查阅文档和搜索网络,但效果甚微。偶然的机会看到了这本书,里面关于 `dispatch_semaphore` 的章节简直是及时雨,它不仅详细解释了信号量的作用,还通过一个实际的生产者-消费者模型案例,让我一步步理解了如何正确使用它来避免竞态条件。这本书就像一个经验丰富的导师,在你遇到难点时,总是能恰到好处地给出最有效的指导,让你茅塞顿开。它不会简单地罗列函数签名,而是深入到函数的生命周期、内存管理、与 ARC 的交互等方面,让你真正理解“为什么”这样做,而不是仅仅“怎么”做。对于想要深入理解 Objective-C 底层机制的开发者来说,这本书绝对是不可多得的宝藏。

评分

可以

评分

开发起来很方便

评分

书不错,看着还行。阿门

评分

快递给力书, 内容不错, 对学习有帮助

评分

It's really good book. Sorry for use English. My phone can't typing Chinese.

评分

很好

评分

很不错,下次还买,京东不错。

评分

。。…。。。。。。。。。

评分

已经收到!!!!!!!

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有