引導 ??
我們追求技術的提升,關註技術的發展歷程;作為從事技術工作的伐碼猿,有個想法(
2
),這個想法工程量之大(遇到,用到,最新技術點,點點積累,及時補充吧
),從事技術多年也算是對所花費時間的一個總結(算是對技術這塊的一個目標吧
)。
重點 -> 重點 -> 重點(重要的事情說 2+1 遍
),
想法和行動都在文章末尾
掘金原文 https://juejin.im/post/59538f8ff265da6c4977706f
源碼註解 https://juejin.im/post/593e54ed8d6d81005898fd26
Copyright ? PBWln Unauthorized shall not be reproduced.
我們通常稱為 “Cocoa框架”,事實上 Cocoa 本身是一個框架的集合,它包含了眾多子框架,其中最重要的要數 “Foundation” 和 “UIKit” 。前者是框架的基礎,和界面無關,其中包含了大量常用的API;後者是基礎的UI類庫,以後我們在 iOS 開發中會經常用到。這兩個框架在系統架構中的位置如下圖:
在「時間 & 知識 」有限內,總結的文章難免有「未全、不足 」的地方,還望各位好友指出,以提高文章質量@jianshu - 白開水ln。
上圖註解:
1、Core OS 層
位於iOS
框架的最底層,主要包含內核、文件系統、網絡基礎架構、安全管理、電源管理、設備驅動、線程管理、內存管理等。簡而言之,該層提供了最低級的、系統級的服務。2、Core Services 層
可稱之為核心服務層,顧名思義,它提供諸如字符串管理、集合管理、網絡操作、URL
實用工具、聯系人管理、偏好設置等服務。除此之外,它還提供很多基於硬件特性的服務,如GPS
、加速儀、陀螺儀等。該層包含了Core Location
、Core Motion
、systemConfiguration
、Foundation
與Core Foundation
子模塊。其中Foundation
與Core Foundation
子模塊提供了對公共數據類型(字符串、集合等)的抽象,Core Foundation
中的Core Data
子模塊可以實現對象圖形管理與對象持久化。
3、Media 層:依賴於Core
Services
層提供的功能,主要負責圖形與多媒體服務。它包含了CoreGraphics
、Core Text
、OpenGL ES
、Core Animation
、AVFoundation
、Core Audio
等與圖形、視頻和音頻相關的功能模塊。
4、 Cocoa Touch 層
是直接向iOS
應用程序提供各種基礎功能的支持。其中的UIKit
框架提供各種可視化控件供應用程序使用,如窗口、視圖、視圖控制器與各種用戶控件等。另外UIKit
也定義了應用程序的默認行為和事件處理結構。
| 不管誰的博客上面寫的(也包括自己
),閱讀的你要敢於去驗證,停止無意義的?copy ?? paste
。 |
|:-:|
Content progress【部分】
| .h文件
| 文件註解
| Tools
| 博客註解
|
| :-: | :-: | :-: | :-: |
| UIKit.h - Annotations & Tools | -- | -- | -- |
| 【NSObject】 | -- | -- | -- |
| UIImage.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIColor.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIBezierPath.h | 【系統文件】 | [【Tools】]() | 【博客註解】 |
| NSURLSession.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| NSArray.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| NSAttributedString.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UILocalNotification.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| NSDate.h | [【系統文件】]() | 【Tools】 | 【博客註解】 |
| UIDevice.h | [【系統文件】]() | 【Tools】 | 【博客註解】 |
| UINavigationItem.h | [【系統文件】]() | 【Tools】 | 【博客註解】 |
| 【UIView】 | -- | -- | -- |
| UIWindow.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIWebView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIToolbar.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UITableView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UITableViewCell.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UITabBar.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UISearchBar.h | 【系統文件】 |【Tools】 | 【博客註解】 |
| UIScrollView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIProgressView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIPickerView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UINavigationBar.h | 【系統文件】 |【Tools】 | 【博客註解】 |
| UILabel.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIImageView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UICollectionViewLayout.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UICollectionViewFlowLayout.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UICollectionViewCell.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UICollectionView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIAlertView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIActivityIndicatorView.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIActionSheet.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| 【UIViewController】 | -- | -- | -- |
| UIViewController.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIVideoEditorController.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UITableViewController.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UITabBarController.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UINavigationController.h | 【系統文件】 | 【【Tools】 | 【博客註解】 |
| UIImagePickerController.h | 【系統文件】 | 【Tools】 | [【博客註解】]() |
| UICollectionViewController.h | 【系統文件】 | 【Tools】 | [【博客註解】]() |
| 【UIGestureRecognizer】 | -- | -- | -- |
| UITapGestureRecognizer.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UISwipeGestureRecognizer.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIRotationGestureRecognizer.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIPinchGestureRecognizer.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIPanGestureRecognizer.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UILongPressGestureRecognizer.h | 【系統文件】 |【Tools】 | 【博客註解】 |
| 【UIControl】 | -- | -- | -- |
| UIButton.h | 【系統文件】 | 【Tools】 | [【博客註解】]() |
| UIControl.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIDatePicker.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIPageControl.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UISegmentedControl.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UISlider.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UISwitch.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UITextField.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| 【UIBarButtonItem】 | -- | -- | -- |
| UIBarButtonItem.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UIBarItem.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| UITabBarItem.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| Foundation.h - Annotations & Tools | -- | -- | -- |
| 【NSObject】 | -- | -- | -- |
| NSString.h | 【系統文件】 | 【Tools】 | [【博客註解】]() |
| NSMutableAttributedString.h | [【系統文件】]() | 【Tools】 | [【博客註解】]() |
| NSTimer.h | [【系統文件】]() | 【Tools】 | 【博客註解】 |
| NSNotificationQueue.h | 【系統文件】 | [【Tools】]() | 【博客註解】 |
| NSRunLoop.h | 【系統文件】 | [【Tools】]() | [【博客註解】]() |
| NSDictionary.h | 【系統文件】 | 【Tools】 | [【博客註解】]() |
| OtherFramework.h - Annotations & Tools | -- | -- | -- |
| runtime.h | 【系統文件】 | 【Tools】 | 【博客註解】 |
| WKWebView.h | 【系統文件】 | [【Tools】]() | [【博客註解】]() |
| 【UIKit-JKCategories】 | 【Tools】 | -- | -- |
| 【MyUIKit-Extension】 | 【Tools】 | -- | -- |
| 【UserNotificationiOS10】 | 【系統文件】 | 【Tools】 | 【博客註解】 |
| 【iOS11】 | [【系統文件】]() | [【Tools】]() | [【博客註解】]() |
| 【ProjectFile】 | -- | -- | -- |
| Header.h | 【Tools】 | -- | -- |
| PrefixHeader.pch | 【Tools】 | -- | -- |
| 11 | 22 | 33 | 44 |
| 未完待續 ! | 未完待續 ! | 未完待續 ! | 未完待續 ! |
| 歡迎留言補充 ! | 歡迎留言補充 ! | 歡迎留言補充 ! | 歡迎留言補充! |
閱讀源碼 || 系統文件,不僅能使我們了解作者的功能實現方式,方便我們運用其功能,快速的fix使用中遇到的bug,更重要的是在閱讀優秀源碼時體會作者的設計思想和架構設計,具體的技術很快就會過時,優秀的設計思想卻會歷久彌新,給我們今後編碼以很大的借鑒和啟迪。向優秀的開源者致敬! 向優秀的分享者致敬!
總之,學習一門語言 & 控件,需要追根溯源,才好提綱切領,即能掌握全局,又能深入細節。從系統文件出發,結合事件業務邏輯處理的機制,再深入到各個功能點或再次封裝,就會 胸有成竹而不亂陣腳了。
Framework Annotations Demo
Framework ( Tools ) Demo
GitHub Project Address
溫馨提示:【真的不點進去閱讀一下 ?】
[更多有關本文系統文件的屬性和方法及常用功能代碼案例,請移步這裏]()
→【Framework-Annotations & Tools註解工具類】??
→【Apple官方譯文&GitHub框架源碼註解】??
期待
如果在閱讀過程中遇到 error,希望你能 Issues 我,謝謝。
如果你想為【本工程】分享點什麽,也希望你能 Issues 我,我非常想為這篇文章增加更多實用的內容,謝謝。
對本專題我會【不定時、持續更新、一些 學習心得與文章、實用才是硬道理】^_^.
About me
【博客】 【簡書】 【掘金】 【公眾號: 白開水ln】 【譯文 & 源碼】 【工具類】
【白開水ln】:(我) 得文章【對你有新思想 或是 習慣】,你的 「Star & Fork」 是對我最大的贊賞 !
| ?? 分享是你我熟悉的味道 ?? 未完待續 !??
|
| :-: |
| :??????: |
| To be continued ?? Plain boiled water ?? To be continued
|
Tags: 框架 管理 註解 技術 包含 服務
文章來源: