Возможные проблемы с пакетами. Невозможно создать NSPersistentStoreCoordinator с нулевой моделью.

Я хочу интегрировать библиотеку Aviary SDK Objective-C в проект Monotouch. Для этого я использую шаблон Monotouch Binding Project. Я собрал DLL (Спасибо умным людям!) Проект компилируется и запускается на симуляторе.

Однако я НЕ могу показать основной вид вольера и следующий код

            this.afPhotoEditor = new AFPhotoEditorController(UIImage.FromFile("Images/site.jpg"));
            AFDelegate afDelegate = new AFDelegate(this);
            this.afPhotoEditor.Delegate = afDelegate;
            this.PresentModalViewController(this.afPhotoEditor, true);

возвращает ошибку:

Unhandled Exception: MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown.  Name: NSInvalidArgumentException Reason: Cannot create an NSPersistentStoreCoordinator with a nil model
  at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSendSuper_IntPtr_bool (intptr,intptr,intptr,bool)
  at MonoTouch.UIKit.UIViewController.PresentModalViewController (MonoTouch.UIKit.UIViewController modalViewController, Boolean animated) [0x00038] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIViewController.g.cs:261 
  at TestAviary.FirstViewController.<ViewDidLoad>m__0 (System.Object , System.EventArgs ) [0x00028] in /Users/mahmood1/Projects/AviaryBinding/TestAviary/FirstViewController.cs:61 
  at MonoTouch.UIKit.UIControlEventProxy.Activated () [0x00000] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:30 
  at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
  at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00042] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29 
  at TestAviary.Application.Main (System.String[] args) [0x00000] in /Users/mahmood1/Projects/AviaryBinding/TestAviary/Main.cs:17 
[ERROR] FATAL UNHANDLED EXCEPTION: MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown.  Name: NSInvalidArgumentException Reason: Cannot create an NSPersistentStoreCoordinator with a nil model
  at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSendSuper_IntPtr_bool (intptr,intptr,intptr,bool)
  at MonoTouch.UIKit.UIViewController.PresentModalViewController (MonoTouch.UIKit.UIViewController modalViewController, Boolean animated) [0x00038] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIViewController.g.cs:261 
  at TestAviary.FirstViewController.<ViewDidLoad>m__0 (System.Object , System.EventArgs ) [0x00028] in /Users/mahmood1/Projects/AviaryBinding/TestAviary/FirstViewController.cs:61 
  at MonoTouch.UIKit.UIControlEventProxy.Activated () [0x00000] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIControl.cs:30 
  at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
  at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00042] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29 
  at TestAviary.Application.Main (System.String[] args) [0x00000] in /Users/mahmood1/Projects/AviaryBinding/TestAviary/Main.cs:17 

Похоже, что эта ошибка (Невозможно создать NSPersistentStoreCoordinator с нулевой моделью) связана с пакетом ресурсов, который Aviary SDK требует добавить.

Из Руководства по установке Aviary iOS:

4. Copy resources

Make sure AviarySDKResources.bundle is included in your target's "Copy Bundle Resources" build phase.

Поэтому я добавил этот пакет через пункт меню «Добавить существующую папку…» в MonoDevelop.

Исходники размещаются здесь >>> http://www.axifile.com/en/71EC96914A

Включает в себя 2 проекта:

  • AviaryBinding (проект привязки MonoTouch)
  • ТестВольер

Спасибо!


person Shturman    schedule 06.06.2012    source источник
comment
Просто идея, вы пытались открыть пакет (я думаю, это Show Contents, я сейчас в Windows) и вытащить все ресурсы внутри него? Вы можете просто добавить их все в свой проект в MonoDevelop.   -  person jonathanpeppers    schedule 08.06.2012
comment
Спасибо за совет. Да пакет открывается и я могу получить из него все файлы. Но я пробовал много комбинаций - не повезло. Я не знаю, что может вызвать эту ошибку. Возможно, Aviary iOS нельзя интегрировать с MonoTouch. Является ли это возможным? ИЛИ MonoTouch может связать ЛЮБУЮ библиотеку ObjC?   -  person Shturman    schedule 08.06.2012
comment
Штурман, можешь поделиться со всеми своим (теперь работающим) решением?   -  person Paul Knopf    schedule 26.04.2013
comment
Кто-нибудь создает привязку для новой версии 3.0? Учитывая новые правила магазина приложений, мы должны иметь его для входа в магазин.   -  person Rick    schedule 29.04.2013
comment
Привязка версии 3.0 найдена по адресу: github.com/theonlylawislove/MonoTouch.Aviary. Спасибо!   -  person Rick    schedule 03.05.2013


Ответы (1)


За комментарий Jonathan.Peppers:

Добавление большинства подобных файлов в ваш проект с помощью Build Action из Content решит проблему.

person Shturman    schedule 15.06.2012
comment
Смотрите мои привязки здесь для рабочего решения. github.com/theonlylawislove/MonoTouch.Aviary - person Paul Knopf; 07.05.2013