1

私は mvvmcross touch サンプル アプリを作成しました。これは基本的に CustomerManagement チュートリアルの一部です。CustomersListViewModel に 1 人の顧客がいます。

アプリを実行すると、出力に次のエラーが表示されます (この投稿の最後を参照)。

セットアップ クラスに不要なプラグインをたくさんロードすると、エラーはなくなります。これはタイミングの問題でしょうか?

プロジェクトのコードはhttps://github.com/patbonecrusher/MvxTableViewSampleApp.gitにあります。

Starting iOS simulator 6.1
Launching application
Application launched. PID = 95621
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.dll [External]
Thread started:  #2
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvxBindingTableTest/bin/iPhoneSimulator/Debug/MvxBindingTableTest.exe
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-    Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Touch.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Dialog.Touch.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.CrossCore.Touch.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.CrossCore.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Binding.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Binding.Touch.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvxBindingTableTest.Core/bin/Debug/MvxBindingTableTest.Core.dll
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/CrossUI.Touch.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/CrossUI.Core.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Plugins.File.dll [External]
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Plugins.ResourceLoader.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/Mono.Security.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll [External]
2013-05-14 10:47:47.266 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.00 Setup: PlatformServices start
2013-05-14 10:47:47.277 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.05 Setup: Bootstrap actions
2013-05-14 10:47:47.287 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.06 Setup: StringToTypeParser start
2013-05-14 10:47:47.291 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.06 Setup: ViewModelFramework start
2013-05-14 10:47:47.293 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.06 Setup: PluginManagerFramework start
2013-05-14 10:47:47.295 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.07 Setup: App start
2013-05-14 10:47:47.296 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.07 Setup:   ViewModelTypeFinder start
2013-05-14 10:47:47.297 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.07 Setup: ViewsContainer start
2013-05-14 10:47:47.299 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.07 Setup: ViewDispatcher start
2013-05-14 10:47:47.299 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.07 Setup: Views start
2013-05-14 10:47:47.311 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.08 Setup: CommandCollectionBuilder start
2013-05-14 10:47:47.312 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.08 Setup: NavigationSerializer start
2013-05-14 10:47:47.313 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.08 Setup: LastChance start
2013-05-14 10:47:47.326 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.10 Setup: Secondary end
2013-05-14 10:47:47.327 MvxBindingTableTest[95621:c07] mvx: Diagnostic:   0.10 Showing ViewModel CustomerListViewModel
2013-05-14 10:47:47.330 MvxBindingTableTest[95621:c07] TouchNavigation: Diagnostic:   0.10 Navigate requested
2013-05-14 10:47:47.405 MvxBindingTableTest[95621:c07] MvxBind: Error:   0.18 MvxBind
4

1 に答える 1

0

完全なエラー ログと github repro に感謝します。

空白のトレース エラー メッセージが表示されて混乱します...

しかし、このエラーは、標準のテーブル ビュー セル ラッパーがデフォルトでイメージローダーを作成するという事実が原因であると推測しています。 .Touch/Views/MvxStandardTableViewCell.cs#L57

トレースは何らかの形でhttps://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding/Views/MvxBaseImageViewLoader.cs#L30から来ていると推測しています

このイメージローダーは、File プラグインを使用する DownloadCache プラグインを使用します。(ディスク上の画像をより永続的に保持する場合は、JSON プラグインのようなテキスト シリアライザーがさらに必要です)。

アプリに画像が必要ない場合、つまりそれらのプラグインが必要ない場合、この問題を回避して、ソースを変更せずに標準セルを使用し続けることはできないようです。

この問題を回避したい場合:

1 独自の標準テーブル セル ラッパーを作成できます ( https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L57に基づく) 2 できますカスタム セルの作成を使用します。3 満たすためにダミー/空のサービスを登録できますIMvxImageHelper<UIImage>- これは機能しますが、解決策としてはあまり好きではありません。

これが重大な問題であり、コア フィックスを提供する必要があると思われる場合は、github/slodge/mvvmcross に問題として記録してください。

実際のアプリでは、標準セルを使用することはあまりなく、ダウンロードキャッシュとファイル プラグインを常に必要とする傾向もあります。そのため、仕事でよくある問題として個人的にこれに出くわすことはありません。

于 2013-05-14T15:15:57.553 に答える