ios - 分配给自定义 init 方法中的属性
问题描述
我正在尝试init
为我的UIViewController
. 这是方法本身:
- (instancetype)initWithBottomViewController:(UIViewController *)bottomViewController andTopViewController:(UIViewController *)topViewController {
self = [super init];
if (self) {
self.bottomViewController = bottomViewController;
self.topViewController = topViewController;
}
return self;
}
- (void)setupBottomViewController {
/*crashes here because self.bottomViewController appears to be nil*/
[self addChildViewController:self.bottomViewController];
[self.bottomViewController.view setFrame:self.view.bounds];
[self.view addSubview:self.bottomViewController.view];
[self.bottomViewController didMoveToParentViewController:self];
}
控制台说-[__NSArrayM insertObject:AtIndex:] object cannot be nil
我调用我的init
函数AppDelegate.m
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
BottomViewController *bottomVC = [[BottomViewController alloc] initWithNibName:@"BottomViewController" bundle:nil];
TopViewController *topVC = [[TopViewController alloc] initWithNibName:@"TopViewController" bundle:nil];
SlideMenuController *slideController = [[SlideMenuController alloc] initWithBottomViewController:bottomVC andTopViewController:topVC];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = slideController;
[self.window makeKeyAndVisible];
return YES;
}
属性self.bottomViewController
和self.topViewController
在.h
文件中声明:
@property (strong, nonatomic) UIViewController *bottomViewController;
@property (strong, nonatomic) UIViewController *topViewController;
问题在于 和 的self.bottomViewController
分配self.topViewController
。bottomViewController
和topViewController
不是nil
,但是self.bottomViewController
和self.topViewController
是。我无法自己弄清楚。提前致谢!
解决方案
问题是我为self.bottomViewController
和实现了空的setter方法self.topViewController
。
推荐阅读
- java - 构建 snap 时如何添加 javafx sdk
- python - 如何在python的数据框列中仅识别(而不是删除或替换)带有前导,尾随空格和双(以及更多)空格的字符串?
- php - 具有相同 id 的组数组
- javascript - 谷歌应用程序脚本 - 在下一个空行中写入数据
- replace - Notepad ++:选择整个列并将其转换为字符串
- python - 来自两个字典的 Python 打印
- android - 在不同设备的情况下布局行为不符合预期
- vba - 如何仅在 *.rdl 文件上运行构建/部署
- python - 如何在 Python 中为 Delta Lake 进行空运行调用真空
- c++ - 请有人能解释一下为什么这个快速排序代码没有按预期工作