Just My Life & My Work

Archive for 十月, 2014

[Xcode] 前編譯標頭檔 (Pre-Compile Header)

更新到了Xcode 6,新建立的專案不再預設.pch檔,之前都將時常用到的class放置.pch檔,讓專案下所有的class都能引用,如今Xcode 6取消預設,我們該怎麼自行建立?

前編譯標頭檔 Pre-Compile Header4

我們可以看到Xcode 5所預設建立的.pch檔位置在專案檔的下一層,路徑就找到囉~

(繼續閱讀…)

[寫真] 大甲鴨舌草帽

緣由是由一位網友文生,描述自己曾經有一頂鴨舌草帽很愛不釋手,可惜在一趟搭飛機的行程弄丟了,於是他想要製作一頂一模一樣的鴨舌草帽,經過一兩週我跟媽媽討論卻不斷忘記跟阿嬤說的過程,最後還是由文生先生主動聯繫我家人,然後消息很快地就傳到我阿嬤的耳中囉~

鴨舌草帽1

(繼續閱讀…)

[iOS] 多國語言化的預設語言 (Default (Fallback) Language of Localization)

繁體中文(因為是母語喲!)為主來做多國語言化,另外兩個語言是簡體中文英文,跟著多國語系 (Localization)這篇文章做,照理說已經沒有其它問題,但是呢⋯⋯若哪天日本人想用這個App,那麼他會看到哪個語言?實際跑過發現是偉大的繁體中文,然而我們的期望卻是套用英文,這時候該怎麼辦呢?打掉重練?噢~不。

Default (Fallback) Language of Localization

(繼續閱讀…)

[iOS] 反序陣列元素 (Reverse Array)

有時候server吐回來陣列元素的順序剛好跟我們所期望的相反,如想要[1,2,3,4,5],卻拿到[5,4,3,2,1]。

此時就需要做反序陣列元素 (Reverse Array)的動作。我們可以有兩種做法,一種是索引(index)由大到小存取陣列元素,一種是陣列元素前後對等交換(最左與最右,左數第二與右數第二,依此類推⋯⋯),下列程式碼實作後者,又分可變陣列(NSMutableArray)不變陣列(NSArray)

將程式碼放到.m檔裡即可使用,或是寫成類別來引用。


/**
 Theme: Reverse Array
 IDE: Xcode 6
 Language: Objective C
 Date: 103/10/14
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
@implementation NSArray (Reverse)

- (NSArray *)reversedArray {
    NSMutableArray *array = [NSMutableArray arrayWithCapacity:[self count]];
    NSEnumerator *enumerator = [self reverseObjectEnumerator];
    for (id element in enumerator) {
        [array addObject:element];
    }
    return array;
}

@end

@implementation NSMutableArray (Reverse)

- (void)reverse {
    if ([self count] == 0)
        return;
    NSUInteger i = 0;
    NSUInteger j = [self count] - 1;
    while (i < j) {
        [self exchangeObjectAtIndex:i
                  withObjectAtIndex:j];

        i++;
        j--;
    }
}

@end

參考:How can I reverse a NSArray in Objective-C?

[iOS] 偏好語言 (Prefer Language)

一個能夠跨國際使用的App,需要多國語言化(Localization),之前介紹的是系統運行時自動轉換字串的語言,然而我們想要知道目前使用者的偏好語言 (Prefer Language),來做更進一步的運用,比如將語言碼當作參數傳遞。

/**
 Theme: Language
 IDE: Xcode 6
 Language: Objective C
 Date: 103/10/14
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
    // 記錄語言碼
    NSString *languageStr = [[NSLocale preferredLanguages] objectAtIndex:0];
//    NSString *languageStr = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0];

    if ([languageStr isEqualToString:@"zh-Hant"]) {// 繁中
        self.languageCode = @"2";
    }
    if ([languageStr isEqualToString:@"zh-Hans"]) {// 簡中
        self.languageCode = @"1";
    }
    if ([languageStr isEqualToString:@"en"]) {// 英語
        self.languageCode = @"0";
    }

有兩種用法可行,注意事項請看文件說明!

使用說明

+ (NSArray *)preferredLanguages NS_AVAILABLE(10_5, 2_0);
note that this list does not indicate what language the app is actually running in; the [NSBundle mainBundle] object determines that at launch and knows that information

@property (readonly, copy) NSArray *preferredLocalizations;
a subset of this bundle’s localizations, re-ordered into the preferred order for this process’s current execution environment; the main bundle’s preferred localizations indicate the language (of text) the user is most likely seeing in the UI

參考:Getting current device language in iOS?

[iOS] 加入聯絡人資料到通訊錄

想要將顯示在App上的聯絡人資料加入到通訊錄,但是不想要讓使用者自己到通訊錄一個字一個字慢慢打,這時候就可以用這些複雜的程式碼解決囉!

Address Book1

(繼續閱讀…)

購買與取得iPhone 6的過程

原本想要託人家到新加坡iPhone 6,可是要多付出些代價,畢竟人家排隊也要工錢,所以就打消念頭囉~不然真的就可以在台灣開賣前得手!

不想要跟電信商榜約,最後就在官網上訂購囉~

iPhone 6 purchase

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: