プロジェクトにカスタムUITableViewController
、セル、およびソースを作成しました。Controller と Cell はもともと iPhone UIViewController テンプレートとして作成されたので、XIB ファイルとペアになった部分クラスを取得しました。私はすでに別のテーブルで同じセットアップを行っており、同じプロセス (と思う) に従ってこのテーブルを作成したため、このエラーが発生する理由がわかりません。
これは私GetCell
のTableViewSource
クラスです
public override UITableViewCell GetCell (UItableView tv, NSIndexPath path)
{
MyCell oCell;
NSArray oViews;
//
oCell = tv.DequeueReusableCell ("MyCell") as MyCell;
//
if (oCell == null)
{
oViews = NSBundle.MainBundle.LoadNib ("MyCell", tv, null);
oCell = Runtime.GetNSObject (oViews.ValueAt (0)) as MyCell;
}
//
oCell.UpdateWithData (MyDataCollection[path.Row]);
//
return oCell;
}
ペン先をロードしようとする行で例外が発生します。
Objective-C 例外がスローされました。名前: NSUnknownKeyException 理由: [ setValue:forUnidentifiedKey:]: このクラスは、キー lbl_address のキー値コーディングに準拠していません。
lbl_address
これは、内部にある UILabelのようにセル インターフェイスを作成した IB の問題を指していると考えていますUITableViewCell
。私はIBでいくつかのことをいじろうとしていますが、最初のラウンドで正しくやらないとかなり腹立たしいことがあります. うまくいけば、誰かがこのエラーを認識して、私を正してくれます.
編集
これに対する答えが見つからないため、ペン先からのロードを避けることを選択し、コードに次の変更を加えました。
の新しいGet Cell
メソッドMyTableViewSource
public override UITableViewCell GetCell (UITableView tv, NSIndexPath path)
{
MyCell oCell;
//
oCell = tv.DequeueReusableCell ("MyCell") as MyCell;
//
if (oCell == null)
oCell = new MyCell ("MyCell");
//
oCell.UpdateWithData (MyDataCollection[path.Row]);
//
return oCell;
}
の新しいコンストラクタMyCell
public MyCell (string sIdentifier)
: base (UITableViewCellStyle.Default, sIdentifier)
{
// Set up the contents of the cell in the absence of loading from the nib
txt_name = new UILabel ()
{
Font = UIFont.SystemFontOfSize (15),
TextColor = UIColor.LightGray
};
img_profile = new UIImageView ();
//
// Make sure to add the controls to the content view!
ContentView.Add (txt_name);
ContentView.Add (img_profile);
}
これが誰かを助けることを願っています:)