Just My Life & My Work

Posts tagged ‘xcode’

[iOS] 清除Xcode暫存檔

自從上次Xcode吃光硬碟空間事件之後,硬碟空間依然越來越少,原因是在Xcode上寫程式後編譯,會產生許多衍生檔暫存檔。本來硬碟空間就不大的Air,只好在一跳出警告的時候,去清除每個專案留下來「垃圾」,刪除後清空垃圾桶,空間又回復一些嚕!

iOS 清除Xcode暫存檔 前
硬碟空間剩下不到1G

(繼續閱讀…)

[iOS] 自己定義NSLog獲得更多資訊

一般而言,寫程式的時候想要debug,通常會「把訊息印出」,在iOS上會用NSLog這個方法,或是在Xcode上「設定中斷點」。在開發的時候會不斷地用NSLog,一旦要釋出時就要把NSLog給刪掉,這是資深工程師的經驗建議,因為太多的印出資料不但會影響效能,還有很大的機率會讓程式當掉。

so many NSLog

我用搜尋功能,一下子就找出非常多個NSLog~

(繼續閱讀…)

[iOS] Xcode 吃光硬碟空間

我的MacBook Air固態硬碟容量只有128GB,分割70GB給Mac,而分割58給Windows。以為這樣子就夠我開發iOS,直到系統在容量低於1GB的時候不斷通知我,要我注意容量即將用罄,我不管它,直到Xcode被凍結……

Xcode 吃光硬碟空間前 (繼續閱讀…)

[iOS] 設定版本 (Set Version)

時常能看到同一個有分付費版免費版,但是又不想之後維護兩種版本的程式碼,該怎麼做呢?設定版本 (Set Version)還滿有技巧性的~

選擇 target -> Build Settings -> 搜尋 “preprocessor Macros"

ios set version

在此我在Tarot with ad這個target的Debug和Release多定義AD=1。如此一來,只要在APP共用的AppDelegate加上判斷版本的method,即可讓所有Class使用。

TRAppDelegate.m定義這兩個method:

+(TRAppDelegate *)sharedAppDelegate
{
    return (TRAppDelegate *)[[UIApplication sharedApplication] delegate];
}
-(BOOL)hasAd
{
    #ifdef AD
        return YES;
    #else
        return NO;
    #endif
}

TRAppDelegate.h宣告這一個method,以便讓其它class呼叫:

+(TRAppDelegate *)sharedAppDelegate;

至於為何不宣告另一個method?因為透過上述method,Xcode可以自己找到另一個method來使用。

其它class只要#import “TRAppDelegate.h"即可使用該method來判斷版本。

-(void)versionInitial
{
    if ([TRAppDelegate sharedAppDelegate].hasAd) {
        //廣告版設定
    }
    else {
        //非廣告版設定
    }
}

參考:老闆的夥伴、iOS Multiple target in the same project

[Objective C] Hello World

早在六月份的時候就開始學Objective C,然而在此刻來做點記錄,也就是讓Objective C來跟大家說「Hello World」。

(繼續閱讀…)

標籤雲