- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在更新Apple Watch的应用程序
这个应用程序使用coredata,所以我创建了一个框架来管理Core Data堆栈!
当我在设备或模拟器上运行该应用程序时,该应用程序运行良好,但是当我在Apple Watch模拟器上运行该应用程序时,此日志崩溃
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法创建
带有nil模型的NSPersistentStoreCoordinator
问题似乎是managedObjectModel,如果我将其记录下来
NSLog(@"managedObjectModel %@", _managedObjectModel);
#import "DataAccess.h"
@implementation DataAccess
@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
+ (instancetype)sharedInstance
{
static DataAccess *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[DataAccess alloc] init];
// Do any other initialisation stuff here
});
return sharedInstance;
}
- (void)saveContext
{
NSError *error = nil;
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil) {
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
}
#pragma mark - Core Data stack
// Returns the managed object context for the application.
// If the context doesn't already exist, it is created and bound to the persistent store coordinator for the application.
- (NSManagedObjectContext *)managedObjectContext
{
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return _managedObjectContext;
}
// Returns the managed object model for the application.
// If the model doesn't already exist, it is created from the application's model.
- (NSManagedObjectModel *)managedObjectModel
{
if (_managedObjectModel != nil) {
NSLog(@"managedObjectModel %@", _managedObjectModel);
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyApp" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSLog(@"managedObjectModel %@", _managedObjectModel);
return _managedObjectModel;
}
// Returns the persistent store coordinator for the application.
// If the coordinator doesn't already exist, it is created and the application's store added to it.
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
if (_persistentStoreCoordinator != nil) {
return _persistentStoreCoordinator;
}
//NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"TMM.sqlite"];
//NSURL *storeURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSAllDomainsMask] lastObject];
// storeURL = [storeURL URLByAppendingPathComponent:@"db.sqlite"];
NSURL *storeURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.ragazzetto.MyApp.Documents"];
storeURL = [storeURL URLByAppendingPathComponent:@"MyApp.sqlite"];
NSError *error = nil;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return _persistentStoreCoordinator;
}
#pragma mark - Application's Documents directory
// Returns the URL to the application's Documents directory.
- (NSURL *)applicationDocumentsDirectory
{
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
@end
最佳答案
当您编写iOS应用扩展程序(包括所有当前的WatchKit应用程序)时,您将使用其自己的捆绑包创建一个单独的可执行文件。应用程序中的资源不一定在扩展程序中可用,反之亦然。因此,当您执行此操作时:
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyApp" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
关于ios - nil中的managedObjectModel(仅在WatchApp中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27784069/
无效的可执行文件 - 可执行文件“xx.app/Watch/watchkitapp.app/PlugIns/watchkitapp Extension.appex/watchkitapp Extens
我正在尝试学习如何为 Apple Watch 开发 watch 应用程序,但有一件事情对我来说似乎有点困难: watch 应用程序和复杂功能 Controller 之间应该如何共享数据? 我在网上看到
根据文档, WKInterfaceController.openParentApplication 方法在后台启动应用程序。但是我的主机应用程序永远不会启动。是否有人对 Watch App 和 Wat
我已经在 watchApp 目标的图像 Assets 中添加了图像,现在我正在尝试用这些图像加载一个数组。但每次我得到的图像都是零。前任。在 watchApp 目标的图像 Assets 中添加了 A1
我最近为 Apple Watch 制作了一个应用程序,我想将其移植到 Pebble。该应用程序很简单,当在 Watch 上打开时,它会向 iPhone 应用程序请求信息,iPhone 应用程序会询问位
我正在为现有的 iPhone 应用程序实现 WatchApp,并希望 api 调用在后台模式下发生在 iPhone 应用程序上。请建议如何去做。我的 iPhone 代码在 Obj-C 中,希望 Wat
我找不到很多关于这个问题的文档。我的 pebble 上所有其他正在运行的应用程序都已连接到我的手机,并且按预期工作。但是,我目前正在处理的 Pebble.js 应用程序只显示 Disconnected
请帮助修复以下错误: 我正在将 Xcode 项目从 Xcode 8 迁移到 Xcode 10,但出现以下错误,该应用程序也支持 WatchKit 扩展。 错误: deprecated product
我是一名优秀的程序员,十分优秀!