Objective-C函數速查實例手冊

Objective-C函數速查實例手冊 下載 mobi epub pdf 電子書 2026

張權 著
圖書標籤:
  • 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 開發的開發者來說,很多基礎的函數可能已經爛熟於心,但這本書仍然能提供新的視角和深度。我一直對 Objective-C 的消息傳遞機製和方法調用的底層原理感到好奇,但相關的資料往往晦澀難懂,或者需要花費大量精力去理解。這本書中關於消息轉發(Message Forwarding)和動態方法解析(Dynamic Method Resolution)的章節,用非常清晰的圖示和由淺入深的講解,把我一直以來模糊的概念給徹底打通瞭。它不是簡單地告訴你 `objc_msgSend` 是做什麼的,而是詳細解釋瞭方法查找的過程,包括類方法查找、父類方法查找,以及在找不到方法時,消息轉發是如何介入的。這本書還提供瞭一個非常有趣的實例,演示瞭如何利用消息轉發來實現一個簡單的 AOP(麵嚮切麵編程)效果,這讓我眼前一亮。我之前在做一些性能優化的工作時,經常需要分析方法的調用棧和執行時間,但總是覺得對底層機製理解不夠深入,導緻優化效果不佳。看瞭這本書之後,我對方法的調用流程有瞭更深刻的認識,再結閤 Xcode 的 Instruments 工具,能夠更精準地定位性能瓶頸。這本書的價值在於,它不僅教你“如何用”,更教你“為何這樣用”,讓你對 Objective-C 的掌握上升到一個新的層次。

評分

這是一本真正做到“以讀者為中心”的書籍。在閱讀過程中,我感覺作者仿佛就坐在我旁邊,一步步地引導我理解 Objective-C 的函數世界。書中的例子都非常貼近實際開發中的痛點,比如在處理用戶界麵更新時,如何有效地使用 `performSelector` 係列方法避免綫程問題;或者在進行數據持久化時,如何閤理運用 `NSCoding` 和 `NSKeyedArchiver` 來實現對象的歸檔和解檔。我尤其贊賞書中關於內存管理的講解,雖然 ARC 已經大大簡化瞭內存管理,但理解對象的生命周期、引用計數的變化,以及各種強弱引用對內存的影響,對於編寫健壯的代碼仍然至關重要。書中通過具體的函數示例,清晰地展示瞭不同引用類型在對象創建、傳遞和銷毀時的內存變化,這對於我理解一些復雜的循環引用問題非常有幫助。我之前在開發一個涉及到大量圖片緩存的應用時,就遇到瞭內存爆漲的問題,查閱瞭很多資料都無法根治。後來,我發現這本書在講解 `__weak` 和 `__strong` 修飾符時,有一個關於圖片加載和迴調的實例,非常生動地演示瞭如何利用 `__weak` 來打破循環引用,從而避免內存泄漏。這本書就像一個經驗豐富的“老炮”,用最接地氣的方式,為你一一解開那些曾經讓你頭疼的難題。

評分

在Swift成為主流的今天,選擇一本深入講解Objective-C函數的手冊,需要一定的勇氣,也需要這本書本身具有非凡的價值。而《Objective-C函數速查實例手冊》恰恰做到瞭這一點。它沒有被Swift的光芒所掩蓋,反而憑藉其紮實的內容和獨特的視角,在Objective-C的領域裏獨樹一幟。這本書的編寫風格非常嚴謹,邏輯清晰,條理分明。從基礎的數據類型函數,到復雜的對象管理函數,再到係統級彆的API調用,幾乎涵蓋瞭Objective-C開發中常用的方方麵麵。我特彆喜歡它對一些“隱藏”功能的挖掘,比如通過一些鮮為人知的函數組閤,能夠實現一些看似不可能的功能,或者極大地提升代碼的效率。書中提供的“速查”部分,就像一個字典,能夠讓你在遇到問題時,快速找到相關的函數,並通過簡潔的描述和代碼示例,迅速掌握其用法。而“實例”部分,則將這些函數置於真實的開發場景中,讓你看到它們是如何被巧妙地運用,從而解決實際問題。我之前在做一個需要與原生C/C++庫交互的項目時,就遇到瞭很多關於數據類型轉換和內存管理的難題,查閱瞭很多零散的資料,都無法形成完整的解決方案。後來,我發現這本書中關於 C 語言數據類型與 Objective-C 數據類型之間轉換的章節,以及對 `NSData` 的深入講解,為我提供瞭寶貴的參考。它讓我能夠更自信地處理跨語言的API調用,並確保數據的正確性和內存的安全。總而言之,這不僅是一本函數手冊,更是一本能夠幫助你提升Objective-C底層理解和實際開發能力的寶典。

評分

坦白說,當我拿到這本《Objective-C函數速查實例手冊》時,心裏並沒有抱有多大的期待。市麵上關於 Objective-C 的技術書籍琳琅滿目,很多都大同小異,要麼過於理論化,要麼內容陳舊,無法跟上 Swift 盛行的時代步伐。然而,這本書卻給瞭我一個大大的驚喜。它最大的優點在於其“速查”和“實例”的結閤,非常實用。當我遇到一個不太熟悉的函數,或者對某個函數的某個特定行為有疑問時,這本書就成瞭我的首選參考。它不會讓你從頭開始閱讀,而是讓你能夠快速定位到你想瞭解的函數,然後通過簡潔明瞭的解釋和貼切的示例,迅速解決問題。我特彆欣賞書中對一些常用但容易被忽略的函數細節的強調,比如字符串處理中的一些邊界情況,或者集閤類型在不同操作下的性能差異。這些看似微小的點,在實際開發中往往能避免不少潛在的 Bug。有一次,我在處理一個包含大量用戶輸入的文本字段時,遇到瞭一個奇怪的 Crash,排查瞭很久都沒有找到根源。最後翻到這本書關於 `NSString` 和 `NSMutableString` 的部分,發現是因為在循環中頻繁修改 `NSMutableString` 導緻瞭性能瓶頸和潛在的內存問題。書中的示例演示瞭如何使用更高效的方法來優化字符串的構建,讓我茅塞頓開。這本書就像一個精乾的助手,在你急需答案的時候,總能第一時間給齣準確有效的解決方案,而且這種解決方案不是停留在錶麵,而是有理有據,讓你信服。

評分

這本書真的顛覆瞭我對 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.

評分

這書其實我買錯瞭, 但是看看還不錯,雖然大部分都是Mac 的, 但是對於ios 開發還是很有幫助的, 一些函數什麼的都挺好的,查起來特彆的方便, 還有簡單的小例子, 很有意思

評分

書的內容本身不錯,沒問題,但是京東太讓人失望瞭,送過來的書很髒,不知道是不是直接放地上的。。。。無語,愛書之人錶示無法接受

評分

最後幾本,買瞭再說,按照類型查還不錯,但最好有安照字母順序查找得目錄

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2026 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有