Sol*_*444 6 xcode core-data objective-c ios xcode8
我正在观看本教程,在Xcode 8中使用Core Data,视频使用的是Swift.在视频中,他进入Task了核心数据模型中命名的实体,然后在他能够调用的代码中Task:
let task = Task(context: context)
Run Code Online (Sandbox Code Playgroud)
我有一个叫做的实体Tag.如何使用Objective-C在代码中访问Tag?Codegen在Core Data模型中设置,但我在项目中看不到任何其他文件.如果我尝试:
Tag test = [[Tag alloc] init];
Run Code Online (Sandbox Code Playgroud)
我收到一个Tag不存在的错误.
如果将Codegen设置为"类定义",则只需导入实体的NSManagedObject子类头文件即可.
进口:
#import "Tag+CoreDataClass.h"
Run Code Online (Sandbox Code Playgroud)
然后Tag将识别您的对象的创建.
Tag *tag = [NSEntityDescription insertNewObjectForEntityForName:@"Tag" inManagedObjectContext:[self managedObjectContext];
tag.name = @"Tag Name";
Run Code Online (Sandbox Code Playgroud)
注意:如果要查看代表您生成的文件,可以检查项目的DerivedData文件夹.您不应编辑这些文件或将它们导入项目中.
就像是:
/Users/{Username}/Library/Developer/Xcode/DerivedData/{Your Project Name}/Build/Intermediates/{Your Project Name}.build/Debug-iphonesimulator/{Your Project Name}.build/DerivedSources/CoreDataGenerated/{Your Project Name}/
还有其他Codegen选项,根据您的使用情况提供不同的选项:
NSManagedObject子类.使用此选项,您将看到项目中的文件,您可以修改它们.我在这里发布了一个关于Codegen选项的更详细的答案:https://stackoverflow.com/a/40647786/4748172
在模型编辑器中选择实体“标签”。
通过选择菜单树“编辑器”->“创建 NSManagedObject 子类...”来生成任务的源代码,然后按照说明进行操作。
'标签+CoreDataClass.h'
'标签+CoreDataClass.m'
'标签+CoreDataProperties.h'
'标签+CoreDataProperties.m'
文件将被创建并自动附加到您的项目中。
导入头文件。
#import "Tag+CoreDataProperties.h"
Run Code Online (Sandbox Code Playgroud)然后创建“标签”类。
NSManagedObjectContext *wContext = ((AppDelegate *)UIApplication.sharedApplication.delegate).persistentContainer.viewContext;
Tag *wTag = [[Tag alloc] initWithContext:wContext];
wTag.name = @"TEST";
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
6097 次 |
| 最近记录: |