2017-06-06 31 views
0

我需要使用動態功能和屏幕創建此應用程序。 可以說我有兩種類型的應用程序用戶 - typeA和typeB。 如果typeA用戶登錄,他只會被呈現並被允許使用功能A和screenA 如果typeB用戶登錄,他將會看到functionA和screenA PLUS功能B和screenB。在iOS應用程序中加載動態功能

當它發展到應用程序安裝在設備上時,很少會發生兩種類型的用戶登錄。它只是typeA或typeB。

要求是,如果它是一個登錄的typeA用戶,我的應用程序大小和內存佔用空間只應用於functionA和screenA。所以理論上應用應該比typeB更輕。

我不確定這裏的術語。但它像原來的應用程序將只有functionA和screenA。但它會輸入B,它會動態加載其他功能和屏幕 - 這不在原始應用程序中。

這可能嗎?

回答

0

你想要的不是真的可能。二進制文件在被上傳前預編譯,所以應用程序大小不會因用戶的種類而異,除非您剪下兩個不同的二進制文件。

但是,基於用戶類型的Swizzling方法是可能的。假設您擁有一個isPremium屬性的用戶(user)。你可以做這樣的事情:

@IBAction func userTappedButton(_ sender: UIButton) { 
    user.IsPremium ? performMethodOne() : performMethodTwo() 
} 

這樣,如果用戶是保費法一種叫,如果他們不是兩個方法被調用。大概你需要在你的應用程序中進行一堆這些檢查。

+0

感謝您的回覆。我明白,但是我們的例子要求首先添加和編譯這兩個函數。我想要的是動態加載其他功能。 – iadgotstacked

+0

我能想到的唯一可能就是通過使用[Active Compilation Conditions](https://miqu.me/blog/2016/07/31/xcode-8-new-build-settings-和分析儀的改進/)。在切割二進制文件之前,您仍然必須決定使用哪種條件,所以我不知道這是否是您想要的。 – allocate

相關問題