iOSでロードされたxibから得られたコントロールが空の問題

1203 ワード

jTreatIpadLookViewController=[[JTreatIpadLookViewControlleralloc]initWithNibName:@"JTreatIpadLookViewController"bundle:nil];
これは私がxibをロードする方法ですが、私が印刷したbuttonはいつも空で、他のコントロールもこのような状況です.
いくつかの苦しみを経験しました
1.まず、autolayoutとsizeClassで異なる状況をテストしました.ネット上でsizeClassがこのような状況を引き起こす可能性があると言われていますが、解決していません.
2.私はiOSの异なるバージョンをテストして、、问题は现れて、iOS 9の中で、、、このような问题はなくて、iOS 8だけが现れます(気がふさいで、、取引先に言うことができなくて、彼を升格させましょう)だから问题を発见してほとんど役に立たないで、、、
3..私は静かにコードを観察して、考えてみました.なぜこのような状況が発生したのか、私が知っているのは2つの状況だけです(1.初期化されていません.2.コントロールが解放されました)
@interface JTreatIpadLookViewController ()
{

    __weakIBOutlet UIButton *forceUpdateButton;
    __strongIBOutlet UIScrollView *scrollerLook;
    NSMutableArray *pathPhoto;
    UIScrollView *downPhotoScroller;
}
@end

@implementation JTreatIpadLookViewController

少し問題を発見して、、私はインターネットの中で引きずってきたxibコントロール、見てすべて__ですweakは突然そうかと思った.weakの原因、だから私は彼を変えました_strongタイプの、bingo、、問題が解決しました、、、
しかし、なぜこのような状況が発生したのか、ARCを使ってからメモリが解放される問題はほとんど発生しないので、
最后にbuild settingの中でこのファイルがMRCモードを使っていることを発见して、、、怒って、、
そこで問題が見つかりました.iOS 8でこのような状況が発生した場合、あなたのファイルがMRCモードを使用しているかどうかを見て、コントロールを事前に解放しました.