Just My Life & My Work

Posts tagged ‘teach’

[iOS] 取得導覽列與狀態列高度

iPhone機型越來越多樣,畫面設計需要考量多size,這次遇到要知道狀態列與導覽列的高度,大致上會有三種值,44 px、64 px、88 px,需要怎麼寫程式來獲取?而不必用多種判斷寫死數值。

原來只要這麼寫即可!

CGFloat topbarHeight = ([UIApplication sharedApplication].statusBarFrame.size.height +
(self.navigationController.navigationBar.frame.size.height ?: 0.0));

就乾淨俐落~

[iOS] 棄用API的使用情況 (Deprecated API Usage)

2020年3月開始,上傳ipa檔到App Store,立刻收到上傳成功信,不過有點不太一樣的是,信中提醒有個問題未來必須解決⋯⋯目前可以暫時略過,直到2020年12月後若還沒解決,上傳ipa檔到App Store就會被拒絕!

哇~真是驚為天人,原本已經完美無瑕的功能,現在要被迫更新使用新的API。其實軟體就是如此,會隨著時間演化出更好的效能,與時俱進是較佳的做法,就像公司的產品,若一直是舊有的狀態,極有可能會被時代給遺棄。例如:Feature phone已被Smart phone取代啦~

原本在想只要搜尋本專案中有無關鍵字「UIWebView」,然而查到的解法,是連同所使用的第三方套件都必須一併移除,這可是大工程呢!於是要研究怎麼轉移到「WKWebView」。

(繼續閱讀…)

[Git] Branch and Merge (分支與合併)

最近要一口氣地將所有產品做完支援API的功能,我特別善用Git的Branch (分支)功能,也就是把每一個產品都開個Branch,單純只記錄一個產品的變更,如圖:

Source Tree真是個好工具,可以將Branch以不同的顏色表達!

當每個產品都完成增修後,就可以開始一步一步來Merge (合併),如圖:

儘管我是一個人在開發產品,然而我不馬乎地開Branch,就有機會碰到Conflict (衝突),此時可來練習如何排除此問題,之後再遇多人協同合作的開發模式,就不必手忙腳亂囉~

使用指令也相當簡單:

  • 分支:git branch
  • 合併:git merge

參考:建立分支合併分支

[iOS] iOS 13 Device Token 問題

某天老闆心血來潮,要推播促銷活動,發現奇怪的問題⋯⋯查詢後原來是iOS 13 Apple推播通知回傳的Device Token改變了規則~

我立馬測試我們家App取得的Device Token,結果如下:

Xcode 11編譯跑在iOS 13

Printing description of deviceToken:
<a9df8591 f9be281b 45b7fd30 c452c298 05d04532 1c8e5e93 83079040 2efd1b83>
Printing description of deviceTokebStr:
{length=32,bytes=0xa9df8591f9be281b45b7fd30c452c298…830790402efd1b83}

Xcode 11編譯跑在iOS 11

Printing description of deviceToken:
<f144b48d 96957ab9 16717a2e e36d56a3 e91c0f7f 48623985 021173dd c4097c0e>
Printing description of deviceTokebStr:
f144b48d96957ab916717a2ee36d56a3e91c0f7f48623985021173ddc4097c0e

可以看到原本該是64字元的字串,變成有length和bytes,於是乎要再另外處理。

(繼續閱讀…)

[iOS] Object 轉換成 JSON

在iOS中有兩種常用的容器Object,就是DictionaryArray,而現在資料傳輸到伺服器幾乎都在使用JSON,於是就有很多機會要將Object 轉換成 JSON

註:

JSON(JavaScript Object Notation,JavaScript物件表示法,讀作/ˈdʒeɪsən/)是一種由道格拉斯·克羅克福特構想和設計、輕量級的資料交換語言,該語言以易於讓人閱讀的文字為基礎,用來傳輸由屬性值或者序列性的值組成的資料物件。儘管JSON是JavaScript的一個子集,但JSON是獨立於語言的文字格式,並且採用了類似於C語言家族的一些習慣。

JSON 資料格式與語言無關,脫胎自JavaScript,但目前很多程式語言都支援 JSON 格式資料的生成和解析。JSON 的官方 MIME 類型是 application/json,副檔名是 .json。

(繼續閱讀…)

[iOS][Xcode] 專案自定義變數 (Project User Defined Variable)

為了避免上架時把開發的東西誤上傳,那麼一開始最好就定義好DebugRelease,其實Debug和Release在Xcode中已有定義,包版本釋出預設就是Release,而開發的時候透過Xcode編譯到手機,預設則是Debug,不過其實可以改成Release來測試,如此方便!

透過Xcode可以讓專案自定義變數 (Project User Defined Variable),這樣一來就算忘了有什麼是測試還是正式,都不用擔心會上錯啦~

(繼續閱讀…)

[iOS] 一次性驗證碼欄位 (One Time Code Textfield)

現在申請或註冊任何服務,非常多都需要透過收發簡訊驗證碼,來確認是否為真實的使用者!過去一直都能在Android收到驗證碼後自動填入畫面欄位,而iOS終於在WWDC 2018開始支援呀XD~它建造一個叫做一次性驗證碼欄位 (One Time Code Textfield)

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: