KKBOX iOS/Mac OS X 基本開發教材
前言
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
小結
其他閱讀資料
版本記錄
Powered by
GitBook
練習:閱讀 Crash Reports
練習:閱讀 Crash Reports
打開 Xcode,接上你的 iOS 裝置
把你的裝置上的所有 crash report 都拿出來
一篇一篇解釋你從 crash report 中看到什麼,並且推測應該如何修正問題
results matching "
"
No results matching "
"