Bor*_*zin 1 iphone runtime properties ios ios-universal-app
我有一个通用应用程序,每个设备(iPad,iPhone)都有不同的属性集,如下所示:
//iPhone
@property (nonatomic, strong) CategoriesViewController *categoriesViewController;
//iPad
@property (nonatomic, strong) UIPopoverController *categoriesPopoverController;
Run Code Online (Sandbox Code Playgroud)
但我不想浪费每个设备的内存合成属性.就像我的情况一样,当用户使用iPhone打开应用程序时,只应创建特定于iPhone的@properties.对于在iPad上运行的应用程序,反之亦然.
在编译时是否有任何指令推迟这个,类似的东西:
#if UI_USER_INTERFACE_IDIOM() = iPhone
//create iPhone properties
#elseif UI_USER_INTERFACE_IDIOM() = iPad
//create iPad properties
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,还是有更好的方法来处理这个?
谢谢!
没有办法完全按照你的要求去做.
这个额外的内存使用真的很重要吗?像这样的属性每个对象的实例只有4个字节.如果它只是一个控制器,你只有一个(或几个)实例,那么这甚至都不值得讨论.
如果你真的需要这样做,可以考虑制作一个抽象基类,然后为iPad和iPhone版本制作子类.在运行时,用于UI_USER_INTERFACE_IDIOM()决定实例化哪个类.
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |