質問

私が作成しました UITableView IOS 6.1 SDKを使用したXcode 4.6でプロジェクト、そしてアプリが呼び出すときにターゲットSDKを5.1に設定します。 dequeueReusableCellWithIdentifiercellForRowAtIndexPath 関数、アプリは例外をスローし、シミュレータは5.1で、シミュレータ6.xはOKです。

1: [UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: 認識されないセレクタはインスタンスに送信されました

2:不明瞭な例外によるアプリを終了させる NSInvalidArgumentException, 、 理由: -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: 認識されないセレクタはインスタンスに送信されました

役に立ちましたか?

解決 2

アップルのマニュアルを見れば、それがわかります dequeueReusableCellWithIdentifier: forIndexPath: IOS 6.0で入ってきました。

つまり、iOS 5.xデバイスでこのメソッドを呼び出しようとすると、例外をスローしようとします。

あなたが年をとったならば、それはもっと良いでしょう "dequeueReusableCellWithIdentifier:" 可能であれば呼び出します。

2つの通話の間に大きな違いの1つは、後者(年上) できる NILを返し、その場合、新しい再利用可能なセルをalloc / initに必要です。

他のヒント

1. DequeuereUsableHeaderFooterviewWithIdentifier
可用性
iOS 2.0以降で利用可能です。
-> この機能を実行するために必要な最小IOSバージョンのものです iOS 2.0

2.DequeuereUsableCellWithIdentifier:forIndexpath:
可用性
iOS 6.0以降で利用可能です。
-> この機能を実行するために必要な最小IOSバージョンのものです iOS 6.0

編集この機能を使用したい場合は、現在のデバイスのバージョンを確認してからこの機能を実装できます。

NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
NSLog(@"curr version = %f",[currSysVer floatValue]);

if ([currSysVer floatValue] >= 6) {
    //iOS 6.0 and later code
    // dequeueReusableCellWithIdentifier:forIndexPath:
}
else{
    //dequeueReusableHeaderFooterViewWithIdentifier
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top