0

すでにこの質問をチェックしました:UIPopoverBackgroundViewのリンクが弱く 、すでに読んでいます:http: //www.marco.org/2010/11/22/supporting-older-versions-of-ios-while-using-new-apis#fnref :1

カスタムPopoverBackgroundViewが.hで宣言され、.mファイルに実装されています。次に、1つのファイルで、このようにインスタンス化します

    self.settingsPopover.popoverBackgroundViewClass = [CustomPopoverBackgroundView class];

私はマルコが上のリンクで言うようにそれをやってみました:

if ([UIPopoverBackgroundView class] != nil) {
    self.settingsPopover.popoverBackgroundViewClass = [CustomPopoverBackgroundView class];
}

しかし、4.3 ipadシミュレーターで実行すると、同じ起動エラーが発生します

dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverBackgroundView

私のベースSDKはIOS5.1であり、ターゲット展開も5.1です。LLVMコンパイラ4.0を使用しています。

何か案は?どうもありがとう!

4

1 に答える 1

1

respondsToSelector関連するUIPopoverController setBackgroundViewClass方法で使用してみましたか?プロパティは、通常のプロパティ構文に加えて使用できるsetterメソッドとgetterメソッドを自動的に生成することに注意してください。

まだリンカエラーが発生する理由は、存在しないそのクラスのメソッドをまだ呼び出そうとしているためです。

クラス全体が存在しない場合は、AppleはNSClassFromString(@"UIPopoverController")、返された結果がnilであるかどうかを使用して確認することをお勧めします。

于 2012-09-18T09:27:36.967 に答える