2013-05-08 52 views
2

在通用應用程序中實現類的正確方法是什麼?iOS通用應用程序類結構

我目前有兩個xib(每個設備一個),每個xib調用相同的類,並在該類內部有一個條件語句,用於檢查當前正在運行該應用程序的設備類型,併爲每個設備執行相應的代碼。

我很困惑,如果這是正確的結構,或者我必須創建一個基類,然後擴展該類的每個設備,只覆蓋每個對應的設備?

回答

1

我個人儘量在我可以使用的地方重複使用代碼,但許多開發人員喜歡爲iPhone和iPad版本創建單獨的類以避免「意大利麪代碼」。它完全取決於你正在編寫的應用程序的複雜性。如果它是一個簡單的應用程序,那麼我認爲沒有理由提供邏輯來測試設備,並根據該設備執行不同的代碼,併爲每個設備創建多個類。儘管爲每個單元測試創​​建單獨的代碼有很多好處,或者可以輕鬆更新iPad特定的代碼,反之亦然。我已經看到成功的開發人員使用這兩種方法,並且如果您正確地使用文檔和編譯標記標記代碼,這兩種方法都可以很好地工作

Here是使用DIFF類

你可以隨時創建一個簡單的類,返回的設備類型,以及如果輸入了完整的測試困擾人們的一個例子。如果您想測試諸如iPod和其他設備類型的東西,這很方便。大多數情況下,這是我使用的方法,除非項目非常大,並且課程開始混亂。

// TestDevice.h 
@interface TestDevice : NSObject 

+ (BOOL)isIpad; 

@end 

// TestDevice.m 
#import "TestDevice.h" 

@implementation TestDevice 

+ (BOOL)isIpad 
{ 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
     return YES; 

    return NO; 
} 

@end 

然後,只需將它添加到您的.PCH,你可以在應用程序調用的任何地方重新使用它......

if ([TestDevice isIpad]) { 
    // Something 
} 
else { 
    // Something else 
}