原创 mac安裝三方軟件提示 XXX已損壞,打不開

一直有朋友同事反映,從網上下載的軟件或者朋友給發送的軟件,以及輸入法等常用軟件,安裝時總是提示“已損壞,移至廢紙簍”這類信息,根本無法打開。其實,這是新系統(macOS Sierra 10.12.X)惹的禍。新系統加強了安全機制,默認不允

原创 iOS常見的延時執行

調用NSObject的方法 [self performSelector:@selector(run)withObject:nilafterDelay:2.0]; //2秒後再調用self的run方法 使用GCD函數 dispatch_af

原创 Android和iOS上的視圖渲染原理

View,幾乎是所有界面系統中的基類,在iOS裏面是UIView,在Android裏是View。 那麼,到底View是什麼東西,他做了些什麼,他是怎麼做到的,在這篇文章中,希望能帶給大家一些啓發。 抽象 View實際上是一個抽象類,他負責

原创 mac更新10.15之後。pod失敗

方案1 brew link --overwrite cocoapods   方案2 brew reinstall cocoapods brew install ruby brew link --overwrite cocoapods  

原创 es6 let和var區別

一、聲明變量var和let的區別: 1. let不允許重複聲明變量 2. let不存在變量提升: 3.let所聲明的變量,只能在let命令所在的代碼塊內有效。 4.如果未在let語句中初始化變量,則將會自動爲其分配JavaScript值u

原创 CocoaPods 升級之後遇到的問題. CDN: trunk Repo update failed

最近升級CocoaPods之後,pod install之後出現CDN: trunk Repo update failed ,這是由於搜索源變了,在Podfile文件中添加 source 'https://github.com/CocoaP

原创 [深入淺出Cocoa]iOS網絡編程之Socket

一,iOS網絡編程層次模型 在前文《深入淺出Cocoa之Bonjour網絡編程》中我介紹瞭如何在Mac系統下進行 Bonjour 編程,在那篇文章中也介紹過 Cocoa 中網絡編程層次結構分爲三層,雖然那篇演示的是 Mac 系統的例

原创 兩個耗時的異步操作如何回調主線程

有這麼1種需求 首先:分別異步執行2個耗時的操作 其次:等2個異步操作都執行完畢後,再回到主線程執行操作 如果想要快速高效地實現上述需求,可以考慮用隊列組 dispatch_group_tgroup =  dispatch_group_

原创 幫助小白快速理解多線程

進程 什麼是進程 進程是指在系統中正在運行的一個應用程序 每個進程之間是獨立的,每個進程均運行在其專 用且受保護的內存空間內 比如同時打開迅雷、Xcode,系統就會分別啓動2個進程 通過“活動監視器”可以查看Mac系統中所開啓的進程

原创 Runtime原理及簡單使用

一、runtime簡介 RunTime簡稱運行時。OC就是運行時機制,也就是在運行時候的一些機制,其中最主要的是消息機制。對於C語言,函數的調用在編譯的時候會決定調用哪個函數。對於OC的函數,屬於動態調用過程,在編譯的時候並不能決定真正調

原创 網絡七層協議的通俗理解

本文轉自https://www.cnblogs.com/carlos-mm/p/6297197.html 感覺寫的挺好的 OSI七層模式簡單通俗理解   這個模型學了好多次,總是記不住。今天又看了一遍,發現用歷史推演的角度去看問題會

原创 運用Runtime將字典轉Model

首先說下運用KVC將字典轉模型的方式: @implementation Status + (instancetype)statusWithDict:(NSDictionary *)dict { Status *status

原创 HTTP POST GET 本質區別詳解

最直觀的區別就是GET把參數包含在URL中,POST通過request body傳遞參數。GET請求只能進行url編碼,而POST支持多種編碼方式。GET請求在URL中傳送的參數是有長度限制的,而POST麼有。對參數的數據類型,GET只接

原创 iOS 繪圖

iOS繪圖教程  Core Graphics Framework是一套基於C的API框架,使用了Quartz作爲繪圖引擎。它提供了低級別、輕量級、高保真度的2D渲染。該框架可以用於基於路徑的繪圖、變換、顏色管理、脫屏渲染,模板、漸變、遮

原创 iOS 鏈式編程思想

鏈式編程思想:是將多個操作通過"."號鏈接在一起成爲一句代碼,使代碼可讀性更好. 例如 eat("蘋果").cat("電視").paly("遊戲"). 鏈式編程特點:方法的返回值是block,block必須有返回值(本身對象),block