5

非推奨のものを置き換えようとしています

[NSBundle loadNibNamed:@"Subscriptions" owner:self];

代わりにこれを使用します(同等のものを見つけることができるのはこれだけです)

[[NSBundle mainBundle] loadNibNamed:@"Subscriptions" owner:self topLevelObjects:nil];

ただし、非推奨の呼び出しで行っていたように開いたままにするのではなく、ダイアログがポップアップしてすぐに消えます。

このコードは、このようなビューコントローラー内にあります。

- (id)init{
    self = [super init];
    if (self) {
        //[NSBundle loadNibNamed:@"Subscriptions" owner:self];

        [[NSBundle mainBundle] loadNibNamed:@"Subscriptions" owner:self topLevelObjects:nil];
    }
    return self;

}

このようにappdelegateから呼び出しています。

SubscriptionsViewController *subscriptionsViewController = [[SubscriptionsViewController alloc] init];
[subscriptionsViewController.window makeKeyAndOrderFront:self];

足りないものはありますか?それは私には簡単に思えます。

4

2 に答える 2

1

使用時に同様の問題が発生しloadNibNamed: owner: topLevelObjects:、常に次のようなエラーが発生しました

[__NSArrayM insertObject:atIndex:]: オブジェクトを nil にすることはできません' タイプ NSException のキャッチされない例外で終了します

私のトップレベルのオブジェクトはnilです。

読み込んでいた nib ファイルの Interface Builder のバージョンが「Xcode 4.6」に設定されていることを最終的に発見しました。それを6.2に設定すると、すべてが再び正常に機能しました。

ここに画像の説明を入力

于 2015-05-10T12:20:18.837 に答える