Just My Life & My Work

Posts tagged ‘xcode’

[Xcode] 主線程檢查器 (Main Thread Checker)

我所使用的整合開發環境是Xcode,每年更新都會釋出新的功能,來幫助開發人如我者更有效率地工作!2018年Xcode即將邁入第10版,這裡我想要來介紹主線程檢查器 (Main Thread Checker)

回想2012年我還是個初學者的時候,還不知道主線程的重要性,以致於有時候發生不預期的反應,實在摸不著頭緒!基本上要記住,改變畫面的動作要在主線程實現,不然會發生什麼事?有時候有反應,有時候沒反應,這種狀況debug超級困難呢!

[Xcode] 主線程檢查器 (Main Thread Checker)1

好在Xcode已經能從語法分析來得知,哪些程式碼會跑到非主線程,若改變畫面的元件在非主線程操作,Xcode就會有紫色的提示。上圖表示Label一定要在主線程使用 ([UILabel text] must be used from main thread only)。

(繼續閱讀…)

廣告

[iOS] 混編Objective C、Swift、C/C++

在Swift剛釋出沒多久,我就研究過如何在同專案整合Objective C和Swift。文章:

儘管還是傾向以Objective C來開發產品,然而Swift的發展日趨重要,不過我大膽推測,就算Apple再怎麼強推Swift,十年內Objective C領導地位依然屹立不搖!為什麼呢?實際接觸4年Swift後,發現Swift變化多端,若猶豫要學Swift還是Objective C可以參考:要學Objective-C還是Swift?

現在想要混編Objective C、Swift、C/C++,應也不是問題~

[iOS] 混編Objective C、Swift、C:C++.png

(繼續閱讀…)

關於 Swift 4.1

最近又「逼不得已」要更新Xcode 9.3(原9.2),原本沒有很想趕上潮流,不過因為老闆把自己的iPhone升級到11.3,我要幫他灌App測試,Xcode就跳出不支援該版本⋯⋯使得我被迫要升級Xcode!更沒想到的是,要安裝Xcode 9.3,還要先升級Mac OS 10.13(原10.12.6),這過程要花我整個下午的時間啊⋯⋯

本篇議題是關於 Swift 4.1,Xcode 9.3就能以Swift編程,以為只是小更新並不大礙,沒想到我所使用的Libray/Framework出現問題!!!

Swift第4版本提到Charts套件超好用,它要以Swift 4.0來編譯,所以要到某處選擇設定。今日更新到Swift 4.1

關於 Swift 4.1 Xcode2

想說編譯執行會很順利,誰知出現⋯⋯

關於 Swift 4.1 Xcode1

這不符合Swift版本問題很神奇啊~

error: The following binaries use incompatible versions of Swift:
/Users/happyboy/Library/Developer/Xcode/DerivedData/TestDeviceSDK-deuhrepxfcygzyguaogwmklmzddz/Build/Products/Debug-iphoneos/TestDeviceSDK.app/Frameworks/Charts.framework/Charts
/Users/happyboy/Library/Developer/Xcode/DerivedData/TestDeviceSDK-deuhrepxfcygzyguaogwmklmzddz/Build/Products/Debug-iphoneos/TestDeviceSDK.app/Frameworks/Zip.framework/Zip

目前還在找解法ORZ,依然有經驗地翻舊文章下載舊版Xcode,先成功編譯後推Git。

想問熟悉寫Swift的高人,到底有多少時間在改Swift語法和設定呀⋯⋯

參考:Swift和Objective-C混編的注意啦

[Xcode] 例外中斷點 (Exception Breakpoint)

Xcode中使用Breakpoint來debug是非常平常的事情,優秀的我們都能從Breakpoint來得知上下文狀態,如各個變數值。有時候崩潰(Crash)來得突然,Xcode沒有提供詳細的Crash訊息,像是我這個例子是:存取Empty Array

[Xcode] 例外中斷點 (Exception Breakpoint)2

此時例外中斷點 (Exception Breakpoint)就非常好用!

(繼續閱讀…)

Swift 第4版本

Swift已經升級到第4版本,我還是沒認真在寫Swift 4,主要是因為它還不太穩定,這幾年必須多花時間去改寫語法到最新版本,於是在有限的開發時間下,我依然對相對穩定的Objective C情有獨鍾XD~

舉一個例子,當我要使用Open Source ChartsXcode會偵測是否相容,否則就無法編譯成功,如圖:

Swift 第4版本.png

好在只要選擇到Swift 4,就能成功編譯!也感謝超好用的圖表開源Charts作者,願意每次Swift升級就改寫語法,造福我們成千上萬的iOS開發者

怎麼在Objective C中使用Swift Open Source?可參考文章:在Objective C專案使用Swift第三方套件

[C/C++] 如何引用C標頭檔

最近要研究1992年程式高人寫的原始碼,看到Xcode上黃色驚嘆號標示說是非常早期的語法,好在還能編譯運作,不然要以目前C語法再刻一次,我真的會想去撞牆啊XD~

話說,我學生時代習慣用C++寫程式,現在想以C++來引用C標頭檔,雖然在Xcode中可以將.c改成.cpp,就能成功「騙」過編譯器,但那樣根本是多此一舉,明明是C語言還要宣示為C++語言。

查詢後原來很簡單如何引用C標頭檔,使用extern保留字標記C,大括號中就是引用C標頭檔。

[C++] 如何引用C標頭檔.png

高人解釋:

For a list of C standard C headers (stdio, stdlib, assert, …), prepend a c and remove the .h. For example stdio.h becomes cstdio.

For other headers, use

extern “C"

{

  #include “happy_header.h"

}

參考:Including C headers inside a C++ program

[Xcode] C++ 讀取所在目錄檔案

過去六年以來一直寫iOS App,讀檔方面路徑沒什麼問題。

然而在Xcode寫C++ code時候,碰到讀取本目錄下txt文件的內容,不想使用絕對路徑,那麼就是使用相對路徑。可以做如下設置,就可以打開文件並讀取!

[Xcode] C++ 讀取所在目錄檔案

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: