2011-08-19 52 views
4

我還從來沒有在Objective-C的API,而現在需要做的這一點。 這個「想法」是我構建了一個可以在其他應用程序中實現的API。很像亂舞,只是爲了其他目的。 啓動API時,應輸入用戶名,密碼和模式。模式應該是現場或測試(我猜這應該是一個NSString(?)),然後是應該罰款[MyAPI doSomething:withThisObject];等。創建一個Objective-C API

因此,要啓動它[MyAPI username:@"Username" password:@"Password" mode:@"BETA"];

誰能幫助我,讓我如何學習這個最好的一些教程和指針?

回答

7

這聽起來像你想要做的是建立一個static library。這是一個編譯的.a文件,其中包含您將分發給客戶端的目標代碼以及包含該接口的頭文件。 This post有點過時,但有一些很好的起點。或者,如果您不介意泄露您的源代碼,那麼您可以將一組源代碼文件交付給您的客戶端。

在開發API本身而言,它應該是非常相似,你會在設計自己的應用程序接口和Objective-C對象的實現方式。您將擁有一個MyAPI類,其中包含初始化,銷燬和所需的所有功能。如果界面很複雜,你也可以有多個具有不同功能的類。由於您在代碼段中使用了大寫MyAPI,因此您希望通過調用類而不是類的實例來使用它 - 如果您認爲只需要一個實例,這是一個很好的策略。要完成此操作,您可以使用singleton模式。

由於您使用用戶名和密碼,我想,你的API將與網絡內部接口。我發現parsing JSON在Objective-C中非常簡單 - 發送請求並從服務器獲取信息非常簡單。

就個人而言,我會使用無符號整數的enum而不是NSString,因爲它簡化了比較等。所以,你可以這樣做:

enum { 
    MYAPI_MODE_BETA, 
    MYAPI_MODE_LIVE, 
    NUM_MYAPI_MODES 
}; 

然後調用:

[MyAPI username:@"Username" password:@"Password" mode:MYAPI_MODE_BETA]; 

也可以很容易地檢查他們是否提供一個有效的模式。 (必須小於NUM_MYAPI_MODES。)

祝你好運!

+0

嗨盧克。非常感謝你給的職位。 +1。我最糟糕的是termonology,但TGF Wikipedia;) API旨在通過XMLRPC連接到外部API。自從我找到Eric J. Czarny寫的一個很棒的XMLRPC庫之後,XMLRPC位就解決了。是的,單身人士足夠了,因爲每次只需要一個動作。我會閱讀你的一些鏈接。再次感謝! –

+0

酷,那麼不要擔心JSON的東西。 – Luke