Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS应用程序中加载动态功能_Ios - Fatal编程技术网

在iOS应用程序中加载动态功能

在iOS应用程序中加载动态功能,ios,Ios,我需要创建这个应用程序与动态功能和屏幕。 假设我有两种类型的应用程序用户-typeA和typeB。 如果typeA用户登录,他将只显示并允许使用functionA和screenA 如果typeB用户登录,他将看到functionA和screenA以及functionB和screenB 当它转到prod并在设备上安装应用程序时,很少有两种类型的用户登录。只是A型或B型 要求是,若它是一个登录的typeA用户,我的应用程序大小和内存占用应该只针对functionA和screenA。因此,理论上,这款

我需要创建这个应用程序与动态功能和屏幕。 假设我有两种类型的应用程序用户-typeA和typeB。 如果typeA用户登录,他将只显示并允许使用functionA和screenA 如果typeB用户登录,他将看到functionA和screenA以及functionB和screenB

当它转到prod并在设备上安装应用程序时,很少有两种类型的用户登录。只是A型或B型

要求是,若它是一个登录的typeA用户,我的应用程序大小和内存占用应该只针对functionA和screenA。因此,理论上,这款应用程序应该比typeB轻

我不确定这里的期限。但就像原来的应用程序只有functionA和screenA一样。但如果typeB登录,它将动态加载其他功能和屏幕-这不是原始应用程序中的功能和屏幕


这有可能吗?

你想要的东西实际上是不可能的。这些二进制文件在上传之前都经过了预编译,因此应用程序的大小不会因用户的类型而异,除非你剪切了两个不同的二进制文件

不过,基于用户类型的Swizzling方法是可能的。假设您有一个用户(
User
)具有
isPremium
属性。你可以这样做:

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

这样,如果用户是高级用户,则调用方法1,如果用户不是高级用户,则调用方法2。你可能需要在你的应用程序上进行一系列的检查。

谢谢你的回复。我理解,但我们的示例需要先添加和编译这两个函数。我想要的是动态加载另一个函数。我唯一能想到的可能是通过使用。在剪切二进制文件之前,您仍然需要决定使用哪个条件,所以我不知道这是否是您想要的。