问题标签 [nscopying]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
414 浏览

ios - NSCopying 协议不起作用

我正在尝试复制一个对象,并且我已经实现了该NSCopying协议,如下所示:

这是我的实现文件的样子:

当我尝试通过实现此方法进行复制时:

我仍然收到错误:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[RLMAccessor_v0_MyActivity copyWithZone:]:无法识别的选择器发送到实例 0x7fe5e0c2c0a0”

该类MyActivity是 的子类RLMObject,因此我不确定这是否与该问题有关。有人可以指出我正确的方向吗?

0 投票
1 回答
51 浏览

ios - 如何使用不是 NSCopying 的 id 键存储数据

我需要实现一个MKMapView在某种意义上模仿的界面。具体来说,我需要支持方法

在内部有一个映射,它将注释映射到一个UIView对象(可能为空)。

那么我应该如何存储这些注解和对应的视图呢?自然的选择是NSMutableDictionary

但它不起作用,因为没有保证id<MyAnnotation>符合NSCopying

我考虑过保存id<MyAnnotation>到原始指针,然后将指针存储到NSNumber(符合NSCopying)。但我不确定这是一个好主意以及如何安全地实施它。

0 投票
1 回答
317 浏览

ios - 符合 Swift 中的 NSMutableCopying?

NSMutableCopying我的问题很简单:在我自己的 Swift 类上符合协议的最佳方法是什么(可能带有一些代码解释)?

0 投票
0 回答
247 浏览

ios - [NSDictionary copy] 方法是如何工作的?

我只想知道里面的技术。

它是否枚举所有键/值或复制方法是线程安全的?

如果我在后台线程上执行 [dict copy](dict is a NSMutableDictionary),并在主线程上更新 dict,它会崩溃吗?

代码:

0 投票
1 回答
479 浏览

swift - 复制 NSTableView 行灰显

我想为用户选择的一行(或多行)向我的 NSTableView 添加复制(Command + C)功能。根据我阅读的内容,如果您在 TableView Controller Delegate中实现复制,菜单项中的复制功能应该会自动激活。

我尝试在 NSTableViewController (是表视图的委托和数据源)中添加以下内容,但没有成功,复制菜单项仍然显示为灰色:

  1. override func copy() -> AnyObject { print("TEST: copytriggered") /在这里我将复制到剪贴板选定的行/ 返回 true }

2.符合NSCopying,实现copyWithZone...

3. 在窗口控制器和应用委托中尝试 1 和 2。

  1. 添加 func tableView(_ tableView: NSTableView, pasteboardWriterForRow row: Int) -> NSPasteboardWriting? 在 TableView 数据源中。

我现在不知道该怎么做,任何帮助表示赞赏。

谢谢,

马克

0 投票
1 回答
278 浏览

swift - 无法制作领域列表符合 NSCopying

我正在尝试使 List< T > 符合 NSCopying。我不能因为:

  1. 泛型类的扩展不支持 @objc。
  2. 我不能继承 List 因为它是最终类。
  3. 如果我在没有标记符合 NSCopying 的情况下实现“公共 func 复制(带有区域:NSZone?= nil)-> 任何”。我只是得到错误:“...copyWithZone:]:无法识别的选择器发送到实例”

因此,虽然 List<T> 中有 copy(),但我们永远无法真正使用它。

当前我必须使用迭代在 List< T > 之外制作副本。我不能简单地使用 instanceOfList.copy()。

0 投票
1 回答
1857 浏览

ios - Swift 3.0 中的 Date.copy()

自从切换到 Swift 3.0,以及随之而来的 NSDate 更改为 Date,该类不再符合 NSCopying 协议。

在 Swift 2 中,这是有效的:

但现在返回编译器错误。

在这种情况下,复制 Date 对象的最佳方法是什么?

这可以解决问题,但它似乎并不特别优雅。并且它可能(理论上)容易受到精度损失的影响,因为 TimeInterval 是 Double (我们无法确认 Date 对象内部使用 - 或将始终使用 - Double)。

0 投票
2 回答
77 浏览

objective-c - 传递对象时数据丢失

我有一个对象

我知道当我填充此对象时它是成功的,并且所有属性都已完全正确地初始化。

但是,当我像这样传递这个对象时:

*这是一个不同的类(它不在上面定义的 NSObject 中)。

question.nextQuestion并且question.previousQuestionnil

为什么当我传递这个对象时,后续对象(下一个问题和上一个问题)会变成 nil?似乎该对象正在执行浅拷贝而不是深拷贝,但不确定。

似乎有一些我不知道的基础知识。

0 投票
1 回答
1355 浏览

ios - 浅拷贝与深拷贝问题 iOS Swift

我在 swift 3 中克隆对象时遇到问题。我想复制/克隆一个对象,然后想修改它的值,以便修改不会反映在实际对象上。这就是我所做的。

上面这行实际上不仅修改了本地副本,还影响了实际的 PatientInformationController.shared().pateintInformation.firstName PateintInformation 符合 NSCopying 协议。

我检查了两个对象(实际和副本)的内存地址,它们是不同的。

在 PatientInformation 类中:

0 投票
3 回答
2343 浏览

swift - NSCopying copy(with:) - 它真的需要返回任何吗?

有没有办法使用 NSCopying 而不返回的对象是 type Any?它总是强迫我投。这似乎很奇怪。我正在复制对象,Swift 不应该根据单词copy的定义知道它是同一类型吗?

是否有另一种方法可以复制我不知道的对象,或者是否有一些我缺少的“陷阱”需要这样做。

该类非常简单,例如:

它必须是一个类,因为我需要继承。

例子:

我想我可以创建一个接受现有对象的初始化程序,但这在语义上似乎不如“复制”这个词好。

我在实现自己的clone() 方法时遇到的唯一问题是,我还希望有一个可以调用clone()许多此类对象并隐式返回相同对象类型的协议。