framework 靜態/動態 庫
env
- xcode : 7.3.1
- ios 9
diff
- 取出 bundle file
- 靜態庫,無法取得 framework.plist 的資訊
- 動態庫,可
- 包裝後的編譯檔,file 也會不同
Spare No Effort, Leave No Regret
Thanks Steven Shen share his knowledge
Other
-> Aggregate -> set Name is xxx-Universal
New Target:Aggregate
scriptClick the [shared]
with project name
and xxx-Universal name
New Target:Aggregate
, and folder include universal-framework will be open.ps : If xcode alert No find xxx.framework from Debug-iphoneos and Debug-iphonesimulator
Go to check the name of workspace and project, the name should be the same.
1 |
|
透過 Wildcards 可以一次訂閱想要的主題,Wildcards 只能運用於 sub 不能用於 pub
myhome/ground/room/temperature
每一個 /
的兩邊,代表的兩個 topic level
Single Level 是指取代此一層的主題(topic level),+
代表此 topic level 有著 single level wildcard 的特性
myhome/groundfloor/+/temperature
在此標誌下,以下均為相同的主題
1 |
|
以下為不相同的訂閱主題
1 |
|
ex2:
home/[position]/[devices]/temperature
: 訂閱’家中單一房間,單一個 device 的溫度’home/+/+/temperature
: 訂閱’家中所有房間中的裝置的溫度’Multi Level 總是放在最後 : myhome/groundfloor/#
以下為相同的主題
1 |
|
以下為不相同的主題
1 |
|
這是系統預設的識別符,專門 publish 給系統,client 無法使用
/
符號,別放在第一位,ex : /ex1/ex2
client1/status
,不被允許 publish 給 client2/status
#
myhome/livingroom/temperature
,myhome/livingroom/brightness
與 myhome/livingroom/humidity
,避免使用 myhome/livingroom/
來接收所有的訊息直接在 xcode 中,產生出適合 armv7 -arch armv7s
與 x86_64
的 framework
若透過預設的方法產出,會有兩種版本,必須再使用 lipo create
進行合併
此方法是透過 script 在 compile 時,直接進行 build 與 lipo create
的動作
1 |
|
open xcode and select [Framework & Library] -> [Cocoa Touch Framework]
lipo -create path_1 path_2 -output [name]
- 產生出的 name 為執行檔,copy Debug-iphoneos/[name].framework
到適當位置
- 將剛剛產生出的 [name],取代掉上一行 framwork 中原本的 [name]
- lipo -info [name]
- 將整包調整過後的 framework 放入 xcode 測試Line 面試 中有一題,提到『動態規劃』一詞與 Fibonacci 的設計方法
稍微 review 一下,『為何 Fibonacci 中單純用遞迴,效率不高』 透過『動態規劃』,把每一次計算出的結果 儲存起來,之後重複的運算,就取出之前暫存的(cached)結果即可
感覺有點類似之前在做數據分析時,在 cached 相同,或者相似資料時,所做的處理 避免重複性的計算,增加程式的效率
Dynamic Programming Approaches:
在 ARC 管理中,常會看到這個名詞
簡單來說就是因為 OC 是 C 的執行庫,而為了讓 OC 可以與 C 進行資料交換,就得利用 Toll-Free Bridging 進行資料格式的交換 如 NSArray 與 CFArray 參考
CFArray is “toll-free bridged” with its Cocoa Foundation counterpart, NSArray. This means that the Core Foundation type is interchangeable in function or method calls with the bridged Foundation object. Therefore, in a method where you see an NSArray * parameter, you can pass in a CFArrayRef, and in a function where you see a CFArrayRef parameter, you can pass in an NSArray instance. This also applies to concrete subclasses of NSArray. See Toll-Free Bridged Types for more information on toll-free bridging.
1 |
|
1 |
|
1 |
|
目的在於處理 ARC <-> MRC 間的溝通
而 『MRC 下的 Toll-Free Bridging 因為不涉及記憶體管理的轉移,相互之間可以直接交換使用。』
Toll-Free Bridged Types 中,有支援 Toll-Free Bridging 的對照表
今天是 AWS 高峰會,聽了很多 IoT 上的各種應用,與 AWS IoT 的互動…對於一些 protocol 使用範例概念上,還是不甚瞭解
MQTT : Message Queue Telemetry Transport wiki of MQTT
MQTT & IoT protocols comparison
在不同的物聯網方案下,選用不同的 protocol
MQTT 是一個 client server 發布/訂閱 訊息交換的 protocol。特性有 輕量、開放、簡單 容易使用。 在許多受限制的環境下,適合使用(M2M / IoT)。運行 TCP/IP 協議。特色有:
Transitioning to ARC Release Notes
為啥會寫這篇,原因在於,寫其他文章,莫名其妙整理這些東西,就順便註記了一下大綱
進入 synology -> 憑證
建立憑證 -> 建立憑證簽署請求(CSR)
下載,取得server.csr , server.key
進入my ssl 輸入 server.csr 內容
會自動選取伺服器的架構 ex: apach+openssl
確認信件
cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt >> bundle.crt
回到synology -> 憑證
https://developer.apple.com/streaming/#streaming
使用 framework
因已安裝 homebrew 故
1 |
|
1 |
|