小编Saz*_*bal的帖子

Cocoa Touch Framework和CoreData

我正在尝试CoreData在我的Cocoa Touch Framework中使用.我创建一个简单的项目作为示例:https: //github.com/JakubMazur/SO41698466

基本上我是按步骤做的:

  1. 使用单元测试创​​建框架
  2. 添加CoreData到项目someDataModel
  3. 填充CoreData一些虚拟实体并将模块更改为Current Product Module
  4. 然后我创建SomeClass开始,它基本上被称为:

.

public class func entityCreation() {
    Entity(context: CoreDataClass().persistentContainer.viewContext)
}
Run Code Online (Sandbox Code Playgroud)

因此,使用lazy来自CoreData的这个自动生成的代码,这应该创建模型.

  1. 在测试中我写道:

.

func testExample() {
    SomeClass.entityCreation()
}
Run Code Online (Sandbox Code Playgroud)
  1. 并开始测试
  2. CoreDataClass我把断点以下行: let container = NSPersistentContainer(name: "someDataModel")然后我在控制台中看到:

[error]错误:无法加载名为someDataModel CoreData的模型:错误:无法加载名为someDataModel的模型

所以我有两个问题:

  1. 是否可以在框架内包含Core Data
  2. 如果1为真,我可以使用不同的NSPersistentContainer名字吗?有一种方法可以检查我应该放在那里?

在这里下载项目:https://github.com/JakubMazur/SO41698466

找到并添加解决方案如下

let modelURL = Bundle(for: type(of: self)).url(forResource: "someDataModel", withExtension: "momd")! 
let managedObjectModel = NSManagedObjectModel(contentsOf: modelURL) 
let …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch core-data ios swift

7
推荐指数
1
解决办法
966
查看次数

如何访问特定于应用程序的文件夹并使用它来备份或某些特定于应用程序的数据?在迅速

我想创建一个应用程序,其中某些类型的数据将同步到应用程序特定文件夹中的谷歌驱动器,并且可以访问它来检索数据并填充到应用程序。如果不知何故用户手机丢失并且用户使用另一个手机并且当用户登录同一个谷歌帐户时,则应该获取该数据。

我的问题是我不知道要执行此操作的步骤,我能够通过谷歌驱动器创建应用程序文件夹,这通过驱动器向最终用户显示 在此处输入图片说明

现在,当我尝试在其中插入数据时,出现范围错误。我使用的代码是:

import Foundation
import GoogleAPIClientForREST

enum GDriveError: Error {
    case NoDataAtPath
 }

class ATGoogleDrive {

private let service: GTLRDriveService

init(_ service: GTLRDriveService) {
    self.service = service
}

public func listFilesInFolder(_ folder: String, onCompleted: @escaping (GTLRDrive_FileList?, Error?) -> ()) {
    search(folder) { (folderID, error) in
        guard let ID = folderID else {
            onCompleted(nil, error)
            return
        }
        self.listFiles(ID, onCompleted: onCompleted)
    }
}

private func listFiles(_ folderID: String, onCompleted: @escaping (GTLRDrive_FileList?, Error?) -> ()) {
    let query = GTLRDriveQuery_FilesList.query()
    query.pageSize = …
Run Code Online (Sandbox Code Playgroud)

backup google-drive-api swift

3
推荐指数
1
解决办法
439
查看次数

标签 统计

swift ×2

backup ×1

cocoa-touch ×1

core-data ×1

google-drive-api ×1

ios ×1