• 前言
  • Selector
    • Objective-C Class/Object 到底是什麼?
    • Selector 有什麼用途?
    • 呼叫 performSelector: 需要注意的地方
    • Selector 是 Objective-C 中所有魔法的開始
    • 相關閱讀
    • 練習:小計算機
  • Category
    • 什麼時候應該要使用 Category
    • 實作 Category
    • Category 還可以有什麼用途?
    • Extensions
    • Category 是否可以增加新的成員變數或屬性?
    • 對 NSURLSessionTask 撰寫 Category
    • 相關閱讀
    • 練習:字串反轉
  • 記憶體管理 Part 1 - Retain、Release
    • Reference Count/Retain/Release
    • Auto-release
    • 基本原則
    • Getter/Setter 與 Property 語法
    • 相關閱讀
  • 記憶體管理 Part 2 - ARC
  • 記憶體管理 Part 3 - Memory Warnings
  • Delegate 與 Protocol
    • 從其他平台來看 Objective-C 的 Delegate
    • 設計 Protocol 與實作 Delegate 的方式
    • 注意事項
    • Data Source 與 Delegate 的差別?
    • Formal Protocol 與 Informal Protocol
    • 無所不在的 Delegate
    • 其他平台上所謂的 Delegate
    • 我們曾經犯過的低級錯誤
    • 相關閱讀
    • 練習:貪食蛇
  • 單元測試
    • AAA 原則
    • 執行測試
    • 測試驅動開發(TDD)
    • 覆蓋率
    • 相關閱讀
  • Blocks
    • Block 的語法
    • Block 如何代替了 Delegate
    • Block 與 Delegate 都可以想成是 Event Handler
    • 什麼時候該用 Blocks?什麼時候該用 Delegate?
    • block 與 weak 關鍵字
    • Block 作為 Objective-C 物件
    • 哪些事情不要拿 Block 來做
    • Callback Hell
    • 相關閱讀
    • 練習:將 Web Service API 包裝成 SDK
    • 練習:將 Web Service API 包裝成 SDK Part2
  • Notification Center
    • 接收與發送 Notification
    • Notification Queue
    • Mac 上的其他 Notification Center
    • CFNotificationCenter
    • 相關閱讀
    • 練習:填字遊戲
    • 練習:自行實作 NSNotificationCenter
  • 所謂的設計模式
    • 圖解設計模式
    • 為什麼要使用設計模式
    • 再談 Singleton
    • 練習:探索 Cocoa/Cocoa Touch Framework
    • 練習:閱讀程式碼
  • 一些新手常常搞混的東西
    • bool 與 BOOL
    • NSInteger 與 NSUInteger
    • NULL、nil、Nil…
  • Responder
    • Run Loop
    • Application
    • Window
    • View
    • View Controller
    • UITouch
    • 相關閱讀
  • Threading
    • performSelector:
    • GCD
    • NSOperation 與 NSOperationQueue
    • 相關閱讀
    • 練習:一個發送多個連線的 Operation
  • NSCoding
    • 實作 NSCoding
    • 常見用途
    • 相關閱讀
  • Crash Reports
    • 如何收集 Crash Reports
    • 記憶體不足時產生的 Crash Report
    • Crash Reports 的三部分
    • 解開記憶體位置
    • 常見 Crash 的類型
    • 禪與 App 維修的藝術
    • 實戰:Bad Access
    • 實戰:因為 Category 造成的 Crash
      • Crash Report
    • 實戰:JB 造成的 Exception
      • Crash Report
    • 實戰:背景作業執行太久
      • Crash Report
    • 相關閱讀
    • 練習:閱讀 Crash Reports
  • Core Animation
    • CALayer
    • CATransaction
    • CAAnimation
    • CAAnimation 的細部設定
    • CADisplayLink
    • 在 Mac 上使用 Core Animation
    • 教學影片
    • 練習:KKBOX 動態歌詞
    • 練習:Flappy Bird
    • 練習:自由發揮
  • Audio API
    • 基礎知識
    • iOS 與 Mac OS X 的 Audio API 概觀
    • 使用 Audio Queue 開發播放軟體
    • 使用 Audio Unit Processing Graph 開發播放軟體
    • 在 AUGraph 中串接 AudioUnit
    • 修改 LPCM 資料
    • Core Audio 到底難在哪?
    • 使用 AVAudioEngine 開發播放軟體
    • 從 Audio Unit Processing Graph 到 AVAudioEngine
    • Audio Session
    • 打造 Player 的完整功能
    • CarPlay
    • MFI 助聽器
    • 教學影片
    • 相關閱讀
    • 練習:iOS Audio Player 開發
  • Auto Layout
    • 什麼是約束 (NSConstraint)
    • 固有內容尺寸 (Intrinsic Content Size)
    • UIScrollView 與 Auto Layout
    • .xib 在 UIViewController lifecycle 的陷阱
    • Self-sizing UITableViewCell height
    • Animation with Auto Layout
  • Accessibility
    • 如何使用 VoiceOver
    • 基本支援
    • VoiceOver 的方向
    • 進階的 Accessibility 設定
    • 相關閱讀
    • 練習:KKBOX 動態歌詞
  • Mac 上的 WebKit
    • 用 Objective-C 操作 DOM
    • JavaScript 與 Objective-C 的溝通
    • JavaScriptCore
  • 小結
  • 其他閱讀資料
  • 版本記錄
  • 本書使用 GitBook 釋出

相關閱讀

相關閱讀

  • NSCoding Tutorial for iOS: How To Save Your App Data
  • NSHipster: NSCoding / NSKeyedArchiver
  • Friday Q&A 2013-08-30: Model Serialization With Property Lists
  • About Preferences and Settings
  • Cocoa Application Competencies for iOS: Pasteboard
  • Pasteboard Programming Guide
  • Document-Based App Programming Guide for iOS
  • Preserving and Restoring State
  • Use Your Loaf: State Preservation and Restoration

results matching ""

    No results matching ""