原创 Objective-C 實現鏈式調用

鏈式調用也是所謂的鏈式編程,是在Masonry中寫法看起來十分直觀,調用起來也很簡單。在特定的應用環境下利用block實現鏈式編程,確實會大大的使代碼直觀易讀。 [_contentView addSubview:_imgView];

原创 知識點:iOS/Mac去掉截圖Alpha通道

在項目開發過程中,遇到一種很奇怪的現象:同一張圖片,在iOS、Mac端能很正常的顯示出來,但在H5、Android端卻顯示不出來。經過對比正常的圖片與這張異常圖片,發現區別在於異常圖片Alpha通道一項的值爲“是”,而正常能夠顯示出來的圖片

原创 2021蘋果秋季發佈會速覽

親愛的小夥伴們,一年一度的科技節春晚—蘋果秋季發佈會如約而至,不知道今年蘋果發佈的新品有沒有讓你有剁手的衝動,下面 QiShare 爲你帶來本次發佈會速覽~ iPad 9 A13 仿生芯片讓 iPad 上的各項操作都靈敏流暢 圖形處理

原创 Java方法執行過程

運行時數據區 Java 運行時數據區共分爲以下幾個部分:程序計數器、Java 虛擬機棧、本地方法棧、Java堆和方法區。其中程序計數器、Java 虛擬機棧、本地方法棧是線程私有的,也就是每個線程都會有這幾部分。Java 堆和方法區是線程共享

原创 Jetpack Compose入門篇-簡約而不簡單

Compose簡介 Jetpack Compose:利用聲明式編程構建Android原生界面(UI)的 工具包 優勢 更少的代碼、代碼量銳減 強大的工具/組件支持 直觀的 Kotlin API 簡單易用 Compose 編程思想

原创 Shell結構化命令:控制流(下)

for循環 bash shell中for循環的基本格式: for var in list do commands done 也可以將do語句和for語句放在同一行,但必須用分號將其同列表中的值分開:for var in list;

原创 Shell結構化命令:控制流(上)

if - then - else語句 if - then - else語句類似我們常用的if - else,基本格式: if command then commands else commands fi 不同於if - else的是:

原创 iOS異常淺析

異常簡介 處理器和系統內核中有設計標識不同事件的狀態碼,這些狀態被編碼爲不同的位和信號。每次處理器和內核檢測到狀態的變化時,便會觸發一個事件,該事件稱爲異常。 系統中可能的每種類型的異常都分配了一個唯一的非負整數的異常號。這些異常號由處理器

原创 Context引發的血案:Android Dialog顯示源碼分析

前言 隨着移動端與前端技術的發展,越來越多的應用使用了混合開發的模式,最典型的代表就是小程序。這之中有肯定會涉及到前端與移動端的交互。 Android與前端常用的交互方式如下表: JavaScript → Android Androi

原创 Nginx反向代理實踐

概述 Nginx反向代理(Reverse Proxy):反向代理是指服務器根據客戶端的請求,從其關係的一組或多組後端服務器(如Web服務器)上獲取資源,然後再將這些資源返回給客戶端,客戶端只會得知反向代理的IP地址,而不知道在代理服務器後面

原创 知識點:iOS 調整導航欄按鈕與邊框的距離

廢話少說,直接上乾貨!👇 1. 一個設置按鈕相對於navBar約束的類 .h文件 #import <UIKit/UIKit.h> typedef NS_ENUM(NSInteger, MANavBarBtnPosition) {

原创 ARouter原理解析之仿ARouter自定義路由框架

ARouter是什麼? ARouter是阿里開源的一款android路由框架,幫助 Android App 進行組件化改造的路由框架 —— 支持模塊間的路由、通信、解耦;結合路由可以實現組件化。 ARouter接入指北 完整Arouter接

原创 Flutter性能優化實踐之Timeline

前言 Flutter自誕生之時就以輕鬆構建美觀、高性能組件著稱,目標是提供逼近“原生性能”的60幀每秒(fps)的性能,或者是在可以達到120Hz的設備上提供120fps的性能。這裏的幀率fps是指的畫面每秒傳輸幀數,是衡量性能優化中屏幕是

原创 剖析Flutter的常用庫get_it

前言 通常外企的領導在工作羣發通知消息 就馬上看到有人回覆:I get it. 這時候,也會有人說: I got it. 只是當你說 I get it. 的時候,更像是明白了一些之前不明白的事情,或者配合其他吐槽的話會顯得不耐煩。 而說 I