2013-05-14 2 views
1

Я написал приложение для примера касания mvvmcross, в основном копирование учебника CustomerManagement. У меня есть один клиент в моих КлиентахListViewModel.Mvvmcross Ошибка привязки tableviewcell

Когда я запускаю приложение, я получаю следующую ошибку в выходе (см. Конец этого сообщения).

Если я загружаю кучу необработанных плагинов в моем классе установки, ошибка исчезает. Может ли это быть вопросом времени?

Вы можете найти код для проекта в 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 

ответ

0

Спасибо за полный журнал ошибок и для Repro GitHub.

Сообщение пустой ошибки трассировки путает меня ...

Но я предполагаю, что эта ошибка вызвана тем, что наша стандартная вид ячейки таблицы обертка создает imageloader по умолчанию - см https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L57

Я предполагаю, что след как-то исходит от https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding/Views/MvxBaseImageViewLoader.cs#L30

Этот imageloader использует плагин DownloadCache, который, в свою очередь, использует плагин File. (Кроме того, требуется дополнительный текстовый сериализатор, такой как плагин 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.

В реальных приложениях я не привык использовать стандартные ячеек, и у меня также всегда требуется файл загрузки и файл-плагин, поэтому я лично не сталкиваюсь с этим как общая проблема в своей работе.

+0

Спасибо Stuart! Это помогает ... Я могу обойти эту проблему .. Нечего нагружать плагин ... Просто хотел убедиться, что я не сумасшедший! : D –

Смежные вопросы