5

Xamarin を使用した iOS 開発を始めたばかりで、障害にぶつかったようです。データを表示するカスタム テーブル セルを作成しようとしています。そのため、さまざまなオンライン ソース (たとえば、こちらを参照) からプロンプトを取得して、.xib ファイルを作成し、Xamarin が自動的に作成したビューを削除して、.xib ファイルに置き換えましたUITableViewCell。セルにいくつかのラベルを追加し、セルを登録RegisterNibForCellReuseして、継承するクラスをセットアップし、UITableViewSource必要に応じてカスタム セルを返しました。ここまでは順調ですね。

カスタム セルのいずれかのコントロールを取得してアウトレットを作成しようとすると、問題が発生します。XCode でアウトレットを作成すると、すべて問題ないように見えます。Xamarin に戻ると、プロパティが自動的に作成されていることがわかります。

[Register ("MyCustomCell")]
partial class MyCustomCell
{
    [Outlet]
    MonoTouch.UIKit.UILabel MyLabel { get; set; }



    void ReleaseDesignerOutlets ()
    {
        if (MyLabel != null) {
            MyLabel.Dispose ();
            MyLabel = null;
        }
    }
}

しかし、コードを実行しようとすると、実行時エラーが発生しますThis class in not key value coding-compliant for key the key MyOutlet

何が起こっているのでしょうか?Xamarin のドキュメントでは、ここで考えられる原因が示唆されていますが、関連性があるかどうかはわかりません。Xamarin が作成したデザイナー ファイルのいずれにもそのようなものは見られず、すべて問題ありませんでした。上記のプロパティ定義を、 and の代わりに属性を使用するものに置き換えてみましたが、Connect同じ結果が表示されます。OutletGetNativeFieldSetNativeField

4

6 に答える 6

7

私の場合、ビルドプロセスに関連する問題であることが判明しました。以下は私のためにそれを修正しました:

プロジェクトを右クリックし、[オプション]、[ビルド] サブヘッダーの下の [iOS ビルド] の順に選択し、[追加の mtouch 引数] に -f を追加して再ビルドします。

于 2013-07-11T02:06:45.067 に答える
3

私は同じ問題に直面していましたが、最終的に XCode 内で Product->Clean を実行したところ、問題が解決しました。

于 2014-03-17T15:07:10.580 に答える
1

プロジェクトを右クリックし、[オプション]、[ビルド] サブヘッダーの下の [iOS ビルド] の順に選択し、[追加の mtouch 引数] に -f を追加して再ビルドします。

于 2014-11-24T10:33:39.473 に答える
0

リチャードの答えに同意します。

他にできることは、プロジェクトを再構築することです。-f 引数が行うことです。

于 2013-09-18T03:27:30.437 に答える
0

私は同じ問題を抱えていて、「クリーニング」ソリューションはうまくいきませんでした。私の解決策は次のとおりです。

  1. プロジェクトを右クリックし、「オプション」を選択します

  2. [ビルド] セクションで、[iOS ビルド] を選択します

  3. また、リンカー オプションで、[すべてのアセンブリをリンク] リンカーの動作を選択します。

于 2014-06-06T14:04:52.130 に答える