小编Dem*_*tri的帖子

如何从特定的对象ID获取Core Data对象?

我可以使用以下代码轻松地在Core Data中获取对象的ID:

NSManagedObjectID *moID = [managedObject objectID];
Run Code Online (Sandbox Code Playgroud)

但是,是否有办法通过为对象提供特定的对象ID来将对象从核心数据存储中取出?我知道我可以通过使用NSFetchRequest来实现这一点,如下所示:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(objectID = %@)", myObjectID];
[fetchRequest setPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

但是,我想以不启动自己的获取请求的方式执行此操作.有任何想法吗?

macos cocoa core-data nsfetchrequest ios

117
推荐指数
2
解决办法
7万
查看次数

将NSAttributedString的子字符串替换为另一个NSAttributedString

我想将a的子串(例如@"replace")替换为NSAttributedString另一个子串NSAttributedString.

我在寻找一个相当于方法NSStringstringByReplacingOccurrencesOfString:withString:NSAttributedString.

string cocoa replace foundation nsattributedstring

52
推荐指数
6
解决办法
3万
查看次数

使用正则表达式搜索NSString

我如何通过NSString使用正则表达式来搜索/枚举?

正则表达式如:/(NS|UI)+(\w+)/g.

cocoa objective-c nsstring

40
推荐指数
2
解决办法
4万
查看次数

如何从同一目录导入python类文件?

我的Python 3.3项目中有一个名为/ models的目录.

从我,main.py我只是做一个

from models import *
Run Code Online (Sandbox Code Playgroud)

在我的__init__.py:

__all__ = ["Engine","EngineModule","Finding","Mapping","Rule","RuleSet"]
from models.engine import Engine,EngineModule
from models.finding import Finding
from models.mapping import Mapping
from models.rule import Rule
from models.ruleset import RuleSet
Run Code Online (Sandbox Code Playgroud)

这适用于我的应用程序.

我有一个模型依赖于其他模型,使得我engine.py我需要进口finding.pyengine.py.当我做:from finding import Finding

我收到了错误No Such Module exists.

如何从同一模块/目录中的文件A导入B类?

编辑1: 显然我可以做到:from .finding import Finding这是有效的.下面的答案也反映了这一点,所以我认为这是合理的正确.我已经修复了我的文件命名并将测试移到了另一个目录,现在我运行得很顺利.谢谢!

python python-import python-3.x

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

我为什么要使用NSObjectController?

虽然我搜索了很多关于Cocoa Bindings的信息,但我仍然对我所获得的信息相对不满意.似乎这个话题对许多人来说有点麻烦,很多人只是避免这种模式,我认为不应该这样.

当然,看起来绑定有时候太复杂,或者设计的开销太大......

但是,我有一个非常直接和具体的问题:如果我可以直接建立绑定,为什么需要NSObjectController?

例如,代码:

[controller bind:@"contentObject" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];

[slicesTextField bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
[stepperControl bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
Run Code Online (Sandbox Code Playgroud)

完全相同:

[slicesTextField bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
    [stepperControl bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我们讨论的是类的属性,其中发生了一切,所以我猜测NSObjectController的需要是:

  • 控制器的关键路径是对象,其他控件的绑定需要它的属性,而不是它的值,就像它们的原语和它们周围的包装一样(在我的情况下,numberOfPiesSlices是NSInteger)

  • 或者当需要从其他外部对象进行绑定时,不仅要在一个对象内进行绑定

任何人都可以确认或拒绝这个吗?

macos cocoa binding cocoa-bindings

13
推荐指数
2
解决办法
3100
查看次数

如何在macOS 10.14上检测暗模式?

在macOS 10.14中,用户可以选择采用系统范围的亮或暗外观,我需要根据当前模式手动调整一些颜色.

macos appearance objective-c macos-mojave

11
推荐指数
3
解决办法
5837
查看次数

Ray 究竟是如何与工作人员共享数据的?

有许多简单的教程以及 SO 问题和答案,它们声称 Ray 以某种方式与工作人员共享数据,但这些都没有详细说明在哪个操作系统上共享的内容。

例如,在这个 SO 答案中:https ://stackoverflow.com/a/56287012/1382437 np 数组被序列化到共享对象存储中,然后由几个访问相同数据的工作人员使用(从该答案复制的代码):

import numpy as np
import ray

ray.init()

@ray.remote
def worker_func(data, i):
    # Do work. This function will have read-only access to
    # the data array.
    return 0

data = np.zeros(10**7)
# Store the large array in shared memory once so that it can be accessed
# by the worker tasks without creating copies.
data_id = ray.put(data)

# Run worker_func 10 times in parallel. This will not create any …
Run Code Online (Sandbox Code Playgroud)

shared-memory ray

11
推荐指数
2
解决办法
623
查看次数

SQLAlchemy错误 - "请明确为这些同名列配置一个或多个属性."

我是sqlalchemy的新手.试图让查询工作并且遇到连接问题.

我有两个表都有一个名为"Id"的列,我需要加入该表.我的代码看起来像这样:

table1 = server.tab1
table2 = server.tab2
joined = server.join(table1,table2, table1.Id == table2.Id)
where = table1.createDate > start
results = joined.filter(where).all()
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误消息:

将列table1.Id与列table2.Id隐式组合在属性"Id"下.请明确为这些同名列配置一个或多个属性.

问题是,我该如何配置这些属性?

TIA!

sqlalchemy

9
推荐指数
1
解决办法
2202
查看次数

bind:toObject:withKeyPath:options:是单向绑定吗?

我有两个窗口:窗口A是从NIB加载的; 和Window B以编程方式创建.

两个窗口都有一个NStextView:窗口A中textview的attributionString绑定到使用IBtext的模型的属性; 而Window B中textview的attributionString绑定到模型的属性使用方法.text-[NSObject bind:toObject:withKeyPath:options:]

[textview bind:@"attributedString"
      toObject:obj
   withKeyPath:@"text"
       options:nil];
Run Code Online (Sandbox Code Playgroud)

这是奇怪的事情:Window B中的textview确实绑定了obj.text,但textview中的更改永远不会更新obj.text.但是,如果我在窗口A的文本视图中进行了更改,则obj.text窗口B中的文本视图也会相应更新.

所以我在想,这个-[NSObject bind:toObject:withKeyPath:options:]方法只适用于单向绑定.我在Cocoa文件中找不到明确的解释.有没有人遇到过这个问题?如何在代码中实现双向绑定?

cocoa binding nstextview cocoa-bindings

8
推荐指数
1
解决办法
3117
查看次数

为BOOL变量编写getter和setter

显然,使用obj-c,通常没有理由编写getter和setter(感谢有用的mr @synthesize).

所以现在,需要做到这一点,我遇到了一个我不知道如何编写它们的问题.:p

我敢肯定我可能不会以正确的方式解决我的问题 - 只是将我的对象子类化得更容易 - 但我正在尝试编写类别代码以添加属性,因为(在开头)它更快,因为我想学习如何在我的应用程序中使用类别代码.

我有这个:

-(BOOL)isMethodStep {
    return self.isMethodStep;
}

-(void)setIsMethodStep:(BOOL)theBoolean {
    if(self.isMethodStep != theBoolean){
        self.isMethodStep = theBoolean;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在setter中没有if查询就试过了,但似乎都没有用.使用断点加载它表明,由于某种原因,它会陷入getter方法的连续循环中.

这段代码是对的还是我做错了什么?

谢谢汤姆

cocoa objective-c ios

7
推荐指数
2
解决办法
6544
查看次数

NSCoding 和 NSData 是什么关系?

我是 iOS 编程的新手,我刚刚学习了一些关于保存/加载对象的基础知识。在我的书中,有一个将图像保存到文件的示例:

NSData *data = UIImageJPEGRepresentation(someImage, 0.5);
[data writeToFile:imagePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

我的书还有一个将“essay”对象保存到文件的示例(“essay”对象有一个字符串作为标题,另一个字符串用于作者):

essay.m符合<NSCoding>协议:

- (void) encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:self.essayTitle forKey:@"essayTitle"];
    [aCoder encodeObject:self.essayAuthor forKey:@"essayAuthor"];

}
- (instancetype) initWithCoder:(NSCoder *)aDecoder
{
    self = [super init];
    if (self) {
        _essayTitle = [aDecoder decodeObjectForKey:@"essayTitle"];
        _essayAuthor = [aDecoder decodeObjectForKey:@"essayAuthor"];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

essayStore.m

[NSKeyedArchiver archiveRootObject:self.myEssay toFile:somePath];
Run Code Online (Sandbox Code Playgroud)

我有三个问题:

  1. 什么时候应该使用 NSData 将对象保存到一个/多个文件,什么时候我应该遵守<NSCoding>协议将对象保存到一个/多个文件?

  2. 什么时候应该将所有对象保存到一个文件中,什么时候应该为每个对象保存一个文件?

  3. 如果我的论文对象中有图像,我如何将其与图像一起保存?

谢谢!

cocoa objective-c nscoding nsdata ios

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

"type"="string"时,对于null的JSON模式验证

我想阻止json提交允许null作为它的有效值.尝试使用关键字not,但没有运气.

希望下面的json被验证为false,因为字段stats值为null.

{
  "stats": "null"
}
Run Code Online (Sandbox Code Playgroud)

请在下面找到我的架构: -

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "http://jsonschema.net#",
  "type": "object",
  "additionalProperties": false,
  "maxProperties": 1,
  "properties": {
    "stats": {
      "id": "http://jsonschema.net/stats#",
      "type": "string",
      "maxLength": 5,
      "minLength": 2,
      "additionalProperties": false,
      "maxProperties": 1,
      "not": {"type":  "null"}
    }
  },

  "required": [
    "stats"
  ]
}
Run Code Online (Sandbox Code Playgroud)

虽然我给了"not":{"type":"null"},但它仍然成功验证.

validation json jsonschema

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

为什么我无法加载位于资源目​​录中的图像?

我正在尝试构建一个简单的屏幕保护程序。我做的第一件事是使用返回 nil 值的方法从资产目录加载图像[NSImage imagedNamed:],这意味着它找不到图像。当我尝试使用该方法直接从包中加载图像时

[[NSBundle mainBundle] URLForImageResource:]

我也得到一个零值。我不明白为什么会发生这种情况。该图像位于资产目录中,并且在项目设置中我已将其设置为捆绑资源。

xcode objective-c nsimage nsbundle asset-catalog

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