《Cocoa編程開發者手冊》
基本信息
做者: (美)奇斯納爾(Chisnall,D.)
譯者: 霍炬
出版社:電子工業出版社
ISBN:9787121122392
上架時間:2013-7-22
出版日期:2013 年7月
開本:16開
頁碼:804
版次:1-1
所屬分類:計算機 > 軟件與程序設計 > 綜合 > 高級程序語言設計
內容簡介
計算機書籍
《cocoa編程開發者手冊》是關於mac os x上cocoa api的指南,涵蓋了從用戶界面到網絡編程各個方面的特性。本書共七個部分,詳細敘述了核心的框架,以及其餘許多用來構建豐富應用程序的組件,指出了龐大的api中最有價值的地方,指引讀者進一步學習。
《cocoa編程開發者手冊》適合mac os x應用程序開發人員及愛好者閱讀。
目錄
《cocoa編程開發者手冊》
第一部分 cocoa概述
第1 章 cocoa 與mac os x 2
1.1 理解什麼時候該用cocoa 2
1.1.1 carbon 3
1.1.2 java 4
1.1.3 cocoa 5
1.1.4 unix api 6
1.1.5 其餘選擇 7
1.2 理解cocoa 在mac os x 中的角色 7
1.2.1 cocoa 8
1.2.2 quartz 9
1.2.3 core foundation 11
1.2.4 darwin 12
1.2.5 xnu 13
1.3 概覽 14
第2 章 cocoa 的可選語言 15
2.1 面向對象 15
2.2 objective-c 17
2.2.1 objective-c 的可選編譯器 18
.2.2.2 與java 及c++ 的區別 19
2.2.3 objective-c 2.0 21
2.3 ruby 與python 22
2.4 小結 22
第3 章 使用apple 的開發工具 23
3.1 獲取apple 的開發工具 24
3.2 interface builder 24
3.2.1 outlet 與action 26
3.2.2 cocoa 綁定 27
3.2.3 繪製簡單的應用程序 28
3.3 xcode 31
3.3.1 建立簡單的項目 31
3.3.2 openstep bundle 33
3.3.3 開發樣例 34
3.3.4 不用xcode 來編譯 35
3.4 objective-c 36
3.4.1 爲什麼學習objective-c 37
3.4.2 對c 的添加 37
3.4.3 異常與同步 44
3.4.4 自省 47
3.4.5 c 中的objective-c 50
3.4.6 objective-c 2.0 51
3.4.7 block 54
3.4.8 objective-c++ 56
3.5 cocoa 規約 57
3.5.1 命名 57
3.5.2 內存管理 60
3.5.3 構造器與初始化器 62
3.6 小結 64
第二部分 cocoa框架
第4 章 foundation: objective-c 基礎庫 66
4.1 通常概念 67
4.1.1 可變的 67
4.1.2 class cluster 67
4.2 core foundation 類型 71
4.3 基本數據類型 72
4.3.1 非對象類型 72
4.3.2 字符串 73
4.3.3 數字和值的裝箱 75
4.3.4 數據 76
4.3.5 緩存和丟棄數據 77
4.3.6 日期和時間 78
4.4 容器 79
4.4.1 比較和排序 79
4.4.2 原生容器 82
4.4.3 數組 82
4.4.4 字典 84
4.4.5 集合 84
4.5 枚舉類型 85
4.5.1 利用高級消息枚舉 87
4.5.2 利用block 枚舉 89
4.5.3 支持快速枚舉 90
4.6 屬性列表 95
4.6.1 序列化 96
4.6.2 用戶默認值 98
4.7 和文件系統交互 101
4.7.1 bundle 101
4.7.2 工做區和文件管理 104
4.7.3 使用路徑工做 106
4.7.4 文件訪問 106
4.8 通知 107
4.8.1 請求通知 108
4.8.2 發送通知 109
4.8.3 發送異步通知 110
4.8.4 分佈式通知 113
4.9 小結 114
第5 章 應用程序相關概念 115
5.1 run loop 115
5.2 應用程序和委託 122
5.3 響應者鏈 123
5.3.1 事件傳遞 124
5.3.2 目標與活動 127
5.3.3 變成首先響應者 128
5.4 應用程序裏的run loop 128
5.5 委託與通知 131
5.6 視圖層次 134
5.6.1 窗口 134
5.6.2 視圖 135
5.6.3 格子 136
5.7 總結 137
第6 章 建立圖形用戶界面 138
6.1 位置視圖 138
6.2 嵌套視圖 143
6.2.1 剪裁視圖 143
6.2.2 滾動視圖 144
6.2.3 頁籤視圖 145
6.2.4 分割視圖 146
6.2.5 方框 147
6.3 建立視圖 148
6.3.1 按鈕 148
6.3.2 文本視圖 150
6.3.3 數據視圖 150
6.3.4 菜單 158
6.4 cocoa 綁定 160
6.4.1 鍵—值編碼 160
6.4.2 鍵—值觀測 165
6.4.3 公開綁定 168
6.4.4 通用控制器 169
6.4.5 綁定與用戶默認值 170
6.4.6 在interface builder 中使用綁定 170
6.5 小結 176
第7 章 窗口與菜單 177
7.1 理解窗口 178
第8 章 cocoa 中的文本 181
8.1 字符串的構建與析構 182
8.2 字符串標註 184
8.3 本地化 186
8.3.1 本地化的宏定義 187
8.3.2 strings 文件 188
8.3.3 格式字符串的本地化 189
8.4 文本存儲 190
8.5 理解字體 191
8.5.1 轉換字體 192
8.5.2 羅列字體 196
8.6 顯示文本 196
8.6.1 基本繪製 196
8.6.2 佈局管理器 199
8.6.3 附件(attachment) 202
8.6.4 文本視圖 203
8.6.5 文本控件單元 204
8.7 編寫自定義文本容器 208
8.8 使用多個文本視圖 212
8.9 小結 215
第三部分 cocoa文檔
第9 章 建立文檔驅動型應用程序 218
9.1 cocoa 文檔模型 219
9.1.1 文件類型 220
9.1.2 文檔對象 223
9.2 建立應用程序骨架 223
9.3 建立文檔 225
9.3.1 載入窗口 225
9.3.2 創建文檔模型 227
9.3.3 讀入和保存文檔 227
9.3.4 文檔建立事件 230
9.4 擴展outliner 231
9.4.1 定義原生文件格式 231
9.4.2 定義外部文件格式 233
9.4.3 支持讀入和保存 236
9.5 支持撤銷 241
9.5.1 註冊撤銷操做 242
9.5.2 建立撤銷組 243
9.5.3 處理撤銷操做 244
9.5.4 撤銷用戶界面 244
9.6 給outliner 增長撤銷功能 245
9.7 總結 254
第10 章 core data 255
10.1 數據建模介紹 256
10.2 理解託管對象 257
10.3 屬性類型 258
10.4 建立數據模型 259
10.5 選擇持久存儲 267
10.5.1 內存存儲 267
10.5.2 xml 存儲 267
10.5.3 二進制存儲 268
10.5.4 sqlite 存儲 268
10.5.5 自定義存儲 269
10.6 存儲元數據 269
10.7 自動還原 271
10.8 core data、spotlight 與time machine 272
10.9 小結 273
第四部分 複雜用戶界面
第11 章 處理結構化數據 276
11.1 數據源和委託對象 277
11.2 表格 277
11.2.1 表格視圖的繪製 278
11.2.2 使用排序描述符 279
11.2.3 定製表格視圖 281
11.3 大綱視圖 284
11.3.1 擴展outliner 示例 285
11.4 瀏覽器視圖 297
11.4.1 瀏覽器視圖的委託 297
11.4.2 建立瀏覽器 298
11.5 集合視圖 301
11.5.1 在集合視圖中顯示文件 302
11.6 用新控件單元定製視圖 305
11.7 建立主- 從視圖 308
11.7.1 做爲細節視圖的檢視器 309
11.8 小結 313
第12 章 動態視圖 314
12.1 多標籤視圖 314
12.2 分析視圖層級結構 315
12.3 修改視圖層級結構 317
12.3.1 改變視圖的父元素 317
12.3.2 重排視圖 321
12.3.3 可拖出窗口的標籤 325
12.4 建立動態輸入表單 329
12.4.1 用矩陣控件建立表單 330
12.4.2 用自定義視圖建立表單 335
12.4.3 用規則編輯器建立表單 339
12.5 全屏應用程序 343
12.6 小結 345
第五部分 高級圖形
第13 章 自定義視圖 348
13.1 圖形上下文 349
13.2 core graphics 350
13.3 用appkit 繪圖 353
13.3.1 繪製形狀 354
13.3.2 用控件單元繪製 358
13.3.3 繪製文本 366
13.3.4 建立新控件單元 371
13.3.5 繪製位圖 375
13.3.6 組合圖像 380
13.4 打印與視圖分頁 382
13.4.1 打印信息 382
13.4.2 建立打印任務 383
13.4.3 視圖分頁 385
13.4.4 自動分頁 391
13.5 用調板擴展interface builder 392
13.6 小結 399
第14 章 聲音與視頻 400
14.1 提示音 400
14.2 播放簡單的聲音 401
14.3 理解cocoa 的影片對象 405
14.4 加上視頻 408
14.5 編輯媒體 411
14.6 低層聲音api 412
14.7 錄音和錄像 414
14.8 支持語音 417
14.9 cocoa 語音合成 418
14.10 跟用戶交談 419
14.11 總結 424
第15 章 高級視覺效果 425
15.1 簡單的動畫 425
15.2 core animation 綜述 427
15.2.1 在圖層裏繪畫 428
15.2.2 設置圖層的內容 431
15.3 理解動畫的概念 432
15.4 加上簡單動畫 434
15.5 圖像濾鏡 437
15.6 定義過渡 443
15.7 建立複雜的動畫 445
15.8 core animation 三維變換 446
15.9 opengl 與cocoa 視圖 450
15.10 quartz 合成器 453
15.11 總結 454
第16 章 支持pdf 和html 455
16.1 appkit 裏的html 456
16.2 高級html 支持 458
16.2.1 webkit 綜述 459
16.2.2 webview 委託 460
16.2.3 編輯html 461
16.3 webkit 的動態接口 465
16.4 pdf 和quartz 471
16.5 顯示pdf 472
16.5.1 理解pdf 標註 476
16.5.2 設置文檔的元數據 479
16.5.3 編輯pdf 480
16.6 小結 484
第六部分 用戶界面集成
第17 章 搜索與過濾 486
17.1 維護文檔索引 487
17.1.1 建立索引 487
17.1.2 對文檔索引 489
17.1.3 搜索一個索引 490
17.2 顯示搜索欄 492
17.3 搜索文檔 493
17.4 spotlight 503
17.4.1 監視文件系統事件 503
17.4.2 爲元數據編制索引 504
17.4.3 建立元數據導入插件 506
17.4.4 用spotlight 搜索 511
17.4.5 spotlight 的侷限性 514
17.5 斷言 515
17.5.1 斷言語言 515
17.5.2 直接建立斷言 517
17.5.3 使用斷言 519
17.5.4 顯示斷言編輯器 520
17.6 quick look 523
17.6.1 預覽包 524
17.6.2 實現quick look 插件 524
17.7 小結 526
第18 章 聯繫人、日曆和私密信息 528
18.1 地址簿概述 529
18.1.1 通常概念 529
18.1.2 集合類 530
18.2 獲取聯繫人的信息 532
18.3 檢索地址簿 535
18.4 填寫「 我」 vcard 536
18.5 在地址簿裏增長聯繫人 538
18.6 保存私密信息 538
18.7 日曆 547
18.7.1 日曆存儲區的概念 548
18.7.2 存取事件 549
18.7.3 新建日曆 552
18.8 同步數據 553
18.8.1 使用apple 的綱要 554
18.9 小結 560
第19 章 剪貼板 561
19.1 剪貼板概覽 561
19.2 剪貼板類型 564
19.3 對類型進行過濾 566
19.4 屬性列表數據 567
19.5 自編碼對象 567
19.6 文件和剪貼板 568
19.7 複製和粘貼 569
19.8 拖動和投放 571
19.8.1 拖動操做 572
19.8.2 投放操做 574
19.8.3 在自定義視圖中實現拖放 575
19.9 拖放和數據視圖 582
19.10 小結 588
第20 章 服務 589
20.1 服務示例 589
20.2 一個計算服務 591
20.3 使用服務 597
20.4 控制服務菜單 599
20.5 過濾器服務 600
20.6 小結 601
第21 章 增長腳本支持 602
21.1 腳本概覽 602
21.1.1 applescript 對象模型 604
21.1.2 腳本詞彙表 604
21.2 將對象腳本化 605
21.2.1 理解applescript 對象 606
21.2.2 提供對象指示符 607
21.2.3 提供一個腳本定義 609
21.2.4 處理腳本命令 613
21.2.5 測試腳本支持 617
21.3 在cocoa 程序中寫腳本 620
21.4 把服務顯露給automator 626
21.5 其餘的腳本技術 626
21.5.1 分佈式對象 627
21.5.2 f-script 627
21.6 小結 628
第七部分 系統編程
第22 章 聯網 630
22.1 底層套接字編程 630
22.2 cocoa 流 636
22.3 url 的處理 637
22.3.1 建立url 638
22.3.2 從url 裝入 638
22.3.3 擴展url 裝載系統 641
22.4 bonjour 644
22.4.1 多播dns 644
22.4.2 dns 服務發現 645
22.4.3 瀏覽服務 645
22.4.4 通告服務 648
22.5 分佈式對象 649
22.5.1 對象的發佈 650
22.5.2 獲取遠程對象 652
22.5.3 一個簡單的聊天程序 653
22.6 總結 660
第23 章 併發 661
23.1 分佈式對象 662
23.2 線程 664
23.2.1 建立線程 664
23.2.2 線程局部存儲 665
23.2.3 同步 665
23.2.4 原子操做 673
23.2.5 將來與轉發 676
23.2.6 線程壓力測試 678
23.3 子進程 679
23.3.1 建立子進程 679
23.3.2 跟子進程通訊 680
23.3.3 共享內存 681
23.4 操做隊列 685
23.5 大調度中心 690
23.6 opencl 692
23.7 小結 693
第八部分 附錄
第24 章 可移植的cocoa 696
24.1 next 和sun 696
24.2 iphone 上的移動os x 697
24.3 openstep 和gnu 697
24.4 gnustep 698
24.4.1 gorm 700
24.4.2 使用gnustep 進行構建 701
24.4.3 étoilé 703
24.5 quantumstep 703
24.6 cocotron 704
24.7 gnustepweb 與sope 705
第25 章 高級技巧 706
25.1 預處理器 707
25.1.1 初始化程序 707
25.1.2 for each 707
25.1.3 objective-c 常量 709
25.1.4 簡單模板 710
25.1.5 友好的調試輸出 711
25.2 控制結構 711
25.2.1 nsdictionary 濫用 712
25.2.2 鍵—值編碼 713
25.2.3 trampoline 714
25.2.4 狀態機 717
25.3 整潔代碼 719
25.3.1 toll-free 橋接 719
25.3.2 多重繼承 720
25.4 優化 722
25.4.1 實例方法指針 723
25.4.2 推翻動態調度 724
25.4.3 棧中的類 726
25.4.4 對象池 730
25.4.5 內聯函數 731
25.4.6 避免對象 733
25.5 cocoa 跨平臺 734
25.6 運行系統 737
25.6.1 理解對象實現 738
25.6.2 枚舉全部子類 740
25.6.3 給一個類增長方法 743