使用if语句为设备声明不同的类

Dav*_*vid 0 objective-c ios

是否可以写下面的内容?

//  MasterViewController.h

#import <UIKit/UIKit.h>

if (device == iPad)
    @interface MasterViewController : UIViewController
else
    @interface MasterViewController : UITableViewController
Run Code Online (Sandbox Code Playgroud)

换句话说,根据设备,通用应用程序是否可能成为不同视图控制器的子类?

Wai*_*ain 5

不要尝试创建这样的单个类,而是创建2个类:

@interface MasterViewController_iPhone : UIViewController
Run Code Online (Sandbox Code Playgroud)

@interface MasterViewController_iPad : UITableViewController
Run Code Online (Sandbox Code Playgroud)

然后在您的代码中使用设备习惯用法来决定实例化哪一个:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    // create a MasterViewController_iPhone
} else {
    // create a MasterViewController_iPad
}
Run Code Online (Sandbox Code Playgroud)