私のチームは最近、かなり大きなプロジェクトをARCに変換しました。変換は順調に進み、アプリケーションは実行され、5.0で正常に動作します。ViewController iOS 4.3で実行されているARCプロジェクトのnibからサブビューをロードしていませんか?
問題は4.3です。無地のinitとコードでインスタンス化コントローラは、VCのビューのサブビューをロードしていない任意のビュー(これは5.0の作業を行います)
はここに要約です:
は[[MyViewController alloc] init]
とビューコントローラをインスタンス化します。 (のUIViewControllerのinitを呼び出しinitWithNibName:nilをバンドル:ゼロ)
これは、ビューコントローラ(MyViewController.xib)と同じ名前を持つペン先をロード
*予想:ペン先はトップレベルのすべてのサブビューを正常にインスタンス化されますビューとすべてのアウトレットセット
*実際:nibはインスタンス化され、MyViewControllerオブジェクトのviewプロパティが設定されています。しかし、ビューのサブビューの配列が空で、これらのビューへの出口は皆無であり、
*回避策提示したときにビューが空に表示されます:私はされていない
[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]
を使用してVC /ロード・ペン先をインスタンス化しますクリーンなプロジェクトでこれを複製することができます。これは、ARCから始めるかARCに変換するかのどちらかです。私のチームと私はこれに取り組んでいますが、その間に他の誰かがこの問題にぶつかって根本的な原因や引き金を見つけたのか疑問に思っていました。あなたはそれが正しいのロードだことを保証することができる方法
- (id)init
{
return [self initWithNibName:NSStringFromClass([self class]) bundle:nil];
}
:
また、同じ問題を抱えています。説明については、以下の回答を参照してください。 – Robb