1

このエラーは実際には自分のアプリでも発生していますが、 KittenView_Macプロジェクトにある同じ問題を参照するだけだと思いました。

プロジェクトを iPhone 6.0/6.1 エミュレーターで実行すると、すべて正常に動作します。5.1 で実行すると、xib ファイルでカスタム テーブル セルをバインドしようとするとクラッシュします。エラーは次のとおりです。

[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 0xb4a3200

4.3 で実行すると、次のようになります。

[UITableView registerNib:forCellReuseIdentifier:]: unrecognized selector sent to instance 0x7c6a200

それを機能させるために変更する必要があるものはありますか?

4

2 に答える 2

1

MvvmCross は iOS 6.0 以降を正式にサポートしています。これは現在、すべての iOS デバイスの 90% 以上を占めています - http://stats.unity3d.com/mobile/index-ios.html

ただし、MvvmCross のほとんどは iOS5 で動作します。これにより、すべての iOS デバイスの 98.5% に対応できます。

iOS4 以前でのサポートが必要な場合は、registerNib:forCellReuseIdentifieriOS4 の後に導入された (おそらく!) これを含め、いくつかの領域を避ける必要があります。

これを機能させるには、この API に依存するのではなく、新しいセルを直接作成する独自の iOS4 互換の TableViewSource をコーディングする必要がありますregisterNib

これを行うには、次のような独自のカスタムTableViewSource継承を使用できます。MvxTableViewSource

 public class MyTableViewSource : MvxTableViewSource
 {
    public MyTableViewSource(UITableView tableView)
        : base(tableView)
    {
    }

    protected override UITableViewCell GetOrCreateCellFor(UITableView tableView, NSIndexPath indexPath, object item)
    {
        var existing = (UITableViewCell)tableView.DequeueReusableCell(KittenCell.CellIdentifier);
        if (existing != null)
            return existing;

        return KittenCell.Create();
    }
 }
于 2013-08-09T16:35:17.930 に答える
0

まず、これを正しい方向に導いてくれたスチュアートに感謝しなければなりません。[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]Obj-C のバックグラウンドがなかったので、意味がわかりませんでしたが、「そのメソッドが見つかりません!」という意味であることがわかりました。

コード内のこの行:

return (UITableViewCell)TableView.DequeueReusableCell(cellIdentifier, indexPath);

iOS 5 で動作するには、次のようになる必要があります。

return (UITableViewCell)TableView.DequeueReusableCell(cellIdentifier);

そのため、実際にそのメソッドを実行するようになりますが、iOS は nib ファイルが無効であると教えてくれました。この投稿のおかげでhttps://stackoverflow.com/a/15019273/31902私は解決策を見つけました.xibファイルをiOSの以前のバージョンと互換性を持たせる必要があります!

現在、これは 4.3 をクラッシュさせるように見えますが、Stuart のコメントによると、私のアプリはすべての iOS デバイスの 98.5% で実行されていることに満足しています。

于 2013-08-10T03:28:28.307 に答える