小编Emp*_*ess的帖子

从'NSPersistentStoreResult'转换为不相关的类型'Entity'总是失败

我正在创建一个小应用程序来学习CoreData中的多对多关系.但是使用下面的代码我从NSFetchResult到我的Entity类('Groepering')会出现错误:

在此输入图像描述

与我的项目相比,我发现在互联网上找到的样本没有任何差别,为什么演员表仍然失败?

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext

let fetchRequest : NSFetchRequest = NSFetchRequest(entityName: "Entity")

    do {
        let fetchResults = try managedContext.executeRequest(fetchRequest)
        let groeperingen = fetchResults as! [Entity]
        // Here I get the Error: ^

    } catch {
        print("Error")
}
Run Code Online (Sandbox Code Playgroud)

core-data swift

36
推荐指数
2
解决办法
9318
查看次数

如果让 Python 中的语法

来自 Swift,我在使用 .None 类型的 Python 时遇到了一些困难。None如果在数组中找不到我要查找的对象,我有一些函数可能会返回。

然后我必须按如下方式嵌套我的代码:

varA = self.getVariableByName(Variables.varA) 
if varA is None: 
    varB = self.getVariableByName(Variables.varB)
    varC = self.getVariableByName(Variables.varC) 
    if varB is not None and varC is not None: 
        # Do something with varB and varC 
Run Code Online (Sandbox Code Playgroud)

在 Swift 中,我曾经能够在 if 语句中绑定变量

let f = getVariableByName
if f(Variables.varA) == nil, let varB = f(Variables.varB), let varC = f(Variables.varC) {
    // Do something with varB and varC
}
Run Code Online (Sandbox Code Playgroud)

什么是更“pythonic”的处理方式None

python

6
推荐指数
2
解决办法
4184
查看次数

在Alamofire的请求适配器中添加GET参数

我正在Alamofire请求适配器中尝试添加GET参数。但是,在请求适配器中,我只能添加HTTPHeader字段。

目前我的request adapter样子:

// MARK: - RequestAdapter

func adapt(_ urlRequest: URLRequest) throws -> URLRequest {
    if let url = urlRequest.url, url.lastPathComponent.hasPrefix(baseURLString) {
        var urlRequest = urlRequest

        // Want to inject param here
        // e.g. urlRequest.addParam(param: "session", value: sessionToken")

        return urlRequest
    }

    return urlRequest
}
Run Code Online (Sandbox Code Playgroud)

我为路径配置了一个路由器,但由于我希望我的AuthHandler对所有与身份验证相关的内容负责,因此我想注入sessionToken。这可以确保与RequestRetrier所有与HTTP 401相关的错误都得到处理。

更改urlRequest的最佳方法是什么?

ios swift alamofire

2
推荐指数
1
解决办法
882
查看次数

实例化NSFetchedResultsController以未捕获的异常终止

我正在NSFetchedResultsController用抽象类的fetchRequest 实例化一个:

private func setupFetchController() {
    let fetchRequest : NSFetchRequest<NSFetchRequestResult> = SearchEntity.fetchRequest()
    let fetchController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
    self.fetchController = fetchController
}
Run Code Online (Sandbox Code Playgroud)

SearchEntity是一个抽象父类的PersonGroup。我用它能够获取1的2个实体NSFetchedResultsController。但是,调用此函数时,应用程序崩溃:

libc ++ abi.dylib:以类型为NSException的未捕获异常终止

我将其范围缩小到取消评论和评论的创建NSFetchedResultsController。我还有另外2个功能完全相同的样式。

我在做什么/错了吗?

编辑:添加到此。我可以手动取得SearchEntity只要使用context.performFetch(...)这给了我正确的结果。但是,因此,要搜索名称,所以我需要能够高效更新。

编辑2:

在其他地方起作用的相同功能的示例:

private func setupFetchController() {
    let fetchRequest : NSFetchRequest<NSFetchRequestResult> = Person.fetchRequest()

    // Sort Persons
    let sortDescriptor = NSSortDescriptor(key: "firstName", ascending: true)
    let sortDescriptor2 = NSSortDescriptor(key: "lastName", ascending: true)
    fetchRequest.sortDescriptors …
Run Code Online (Sandbox Code Playgroud)

core-data nsfetchedresultscontroller swift

2
推荐指数
1
解决办法
159
查看次数

在 Dexie 迭代中使用 Promise

我并不是真正的承诺忍者,我知道我做错了。但是,我找不到与我遇到的问题相关的特定/类似问题。

问题:我对 IndexedDB 使用异步的 Dexie.js 包装器。我有一个全局数据库,它通向其他一些 dexie 数据库。

function handleDatabases() {
    var result = [];

    db.jobs.orderBy('title').filter(function(job) {
        return job.someBooleanCondition;
    }).each(function(job, cursor) {
        let jobDetails = new Dexie(job.correspondingDB);
        jobDetails.version(1).stores({
            details: 'key,value1,value2'
        }); 
        jobDetails.details.get(someKey).then(function(detail) {
            result.push({job: job, detail: detail});
        })
    }).catch(function(error) {
        console.log(error);
    });
    handleResult(result);
}
Run Code Online (Sandbox Code Playgroud)

我已经用一种可能奇怪的形式重写了它,但最终目标是我可以使用数组result来处理一些更新。但是,由于它是异步的,因此它始终为空,直到您在控制台中检查它,它永远不会为空。我怎样才能将其重写为同步?

javascript promise dexie

2
推荐指数
1
解决办法
1165
查看次数

UITableView 错误的部分标题

我已经被这个错误困扰已经有一段时间了。我有一个UITabBar有 2 个选项卡的。第一个包含UITableViewController一周中不同日期的餐食。第二个选项卡包含一个UIViewController登录屏幕。

UITableViewController被称为“EettafelView”。它从在线来源获取食物(使用 Alamofire)并将其呈现在应用程序中。它们被缓存CoreData并使用 aNSFetchedResultsController来检索以呈现它们。为此,我使用默认值UITableViewDelegates(numberOfRowsInSection、numberOfSections 等)-如果它们相关,我会将它们发布在编辑中。

当 tableview 加载并且我设置了 fetchController 并执行了 fetch 时,我漂亮地打印它的对象以测试它保存的内容以及排序描述符是否完成了它们的工作。这导致以下结果:

Hollandse stoof met bokbier - Optional("maandag, 20 feb.")
    Gehaktballetjes
    Quorn gehakt
Stamppot van verse spinazie - Optional("dinsdag, 21 feb.")
    Rookworst
    Kaasspies
Indiase Curry - Optional("woensdag, 22 feb.")
    Kip
    Bloemkool
Pasta Mexicane - Optional("donderdag, 23 feb.")
    Gehakt
    Tofu en Bruine Bonen
Boeuf des Gardiens - Optional("vrijdag, 24 feb.")
    Rundvlees
    Kastanjechampignons
Run Code Online (Sandbox Code Playgroud)

使用漂亮的打印代码:

if let …
Run Code Online (Sandbox Code Playgroud)

core-data uitableview nsfetchedresultscontroller ios

0
推荐指数
1
解决办法
181
查看次数