小编akr*_*acs的帖子

使用聚合操作崩溃:Core Data iOS应用程序中的"ALL"

我正在开发一个iphone应用程序,我与Group和Contact对象建立了一个简单的多对多关系.一个组可以有多个联系人,联系人可以属于多个组.

我正在尝试使用以下谓词选择特定联系人不属于的所有组.(注意:uid字段是我用来唯一标识联系人实体的字符串字段)

[NSPredicate predicateWithFormat:@"ALL contacts.uid != %@", contactUId]
Run Code Online (Sandbox Code Playgroud)

根据Apple的谓词编程指南,ALL聚合操作是有效的,但是我得到以下异常,表明这是一个不受支持的谓词:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate (null)'
Run Code Online (Sandbox Code Playgroud)

我可以使用类似的谓词来使用此谓词选择联系人已经属于的所有组,因此看起来我已正确定义了所有关系和字段.

[NSPredicate predicateWithFormat:@"ANY contacts.uid == %@", contactUId]
Run Code Online (Sandbox Code Playgroud)

在构造谓词时抛出异常,而不是在我尝试实际执行获取请求时抛出异常,因此它似乎与我使用的语法相关,而不是与Core Data支持相关.我究竟做错了什么?

iphone predicate core-data nspredicate ios

8
推荐指数
2
解决办法
2951
查看次数

Nest.js 应用程序在没有等待的异步函数中抛出错误后变得无响应

问题是,如果函数中抛出异常async,但在没有 的情况下调用该函数await,则 Nest 应用程序将进入不再响应请求但进程不存在的状态。

有时我们可能想在请求中调用一个函数,但不需要等待它完成后再返回对调用者的响应,但大多数时候我们遇到这种情况只是意外遗漏了await. 事实上,它使服务器变得无用,这是一个很大的问题。

我怀疑这个问题可能有一个简单的解决方案,但我自己没有成功找到它。

应用程序控制器.ts

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }

  @Get('/crash')
  public async crash(): Promise<void> {
    await this.appService.crash();
  }
}
Run Code Online (Sandbox Code Playgroud)

应用程序服务.ts

import { Injectable } from '@nestjs/common';

const sleep = async (ms: number): Promise<void> => {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
};

const …
Run Code Online (Sandbox Code Playgroud)

nestjs

5
推荐指数
1
解决办法
1690
查看次数

标签 统计

core-data ×1

ios ×1

iphone ×1

nestjs ×1

nspredicate ×1

predicate ×1