问题标签 [copywithzone]

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 回答
4635 浏览

ios - 错误:“NSObject”没有可见的@interface 声明选择器“copyWithZone:”

我想允许对我的类对象进行深层复制并尝试实现 copyWithZone 但调用会[super copyWithZone:zone]产生错误:

我应该如何创建此类的深层副本?

0 投票
1 回答
4070 浏览

ios - [MyClassName copyWithZone:]:无法识别的选择器发送到实例?

我刚刚实施了我的课程

这是我的项目模型

输出为:SDNestedTablesExample[1027:c07] -[ProjectModel copyWithZone:]: unrecognized selector sent to instance 0x7562920. 我不知道是哪个问题。你能帮助我吗 ?

0 投票
1 回答
156 浏览

objective-c - 正确 NSCopying 一个“父”属性,使其指向它已经复制的父属性

我有一个包含 B 类属性的 A 类。B 类对其“父”类 A 有一个弱引用。这两个类都实现了 NSCopying。

我不知道在 B 类中究竟应该如何实现 NSCopying。我看到了两个明显的选择:

  1. 将父属性分配给复制的类
  2. 复制父属性并将其分配给复制的类

在第一种情况下,B 中的父属性将指向原始 A。在第二种情况下,父属性是一个全新的副本。

如何正确复制 B 类,以便父属性在 NSCopying 过程中指向新创建的 A 副本?

我想最简单的方法是从 A 类中的 copyWithZone: 更新父属性。但是有什么方法可以在 B 类中这样做吗?

0 投票
1 回答
6352 浏览

ios - 如何正确实现 mutableCopyWithZone 和 copyWithZone

我读了其他一些关于它的主题,但我仍然迷路了。

我想创建 2 种对象,一种只有“只读”属性的不可变对象,一种只有“读写”属性的可变对象。

让我们称它们为 EXCar 和 EXMutableCar。

EXCar 是 NSObject 的子类,EXMutableCar 是 EXCar 的子类。

ExCar 将在其界面中

EXMutableCar 将在其界面中

因此,当我使用它的子类 EXMutableCar 时,我“打开”了 EXCar 的属性。然后它是可变的。问题是在它们之间正确复制。

我在 EXCar 中实现了 mutableCopyWithZone :

第一个问题,这是做这件事的好方法吗?(我要燕子副本)

问题在于copyWithZone。由于 EXCar 的属性是只读的,我既不能在 EXCar 中创建,也不能在 EXMutableCar 中创建 EXCar 的新实例并像这样填充其属性:

而且我真的不想做一个带有 15 个属性的“init”方法来传递(当然,EXCar 就是一个例子,真正的类充满了许多属性)。通常它们是从服务器的 JSON 消息启动的,因此它们不需要复杂的 init 方法。

第二个问题是这样,如何做一个让我的班级不可变的 copyWithZone ?

谢谢你的帮助 :)

0 投票
1 回答
2475 浏览

objective-c - 深拷贝 - 这两个 copyWithZone 的实现不同吗?

我已经看到了两种实现 copyWithZone 的不同方式。它们不同吗?

第一个代码:

和第二个代码

如果它们不同,它们中的哪一个更正确?1. 我在 1st 中与 [self class] 混淆了。我知道目标 c 中的元类,但是在那段代码中有必要吗?2. copy.name = self.name; vs another.obj = [obj copyWithZone: zone] 和上面的有什么区别?

0 投票
1 回答
151 浏览

ios - copyWithZone 使用 mogenerator

我正在使用 Mogenerator 生成我的模型。所以在我的人类模型中,我有

由于 Machine 类具有所有属性,因此我没有将它们读入 Human 文件。但是我收到一个错误

我真的需要重新定义 Human 文件中的所有内容吗?

0 投票
0 回答
67 浏览

ios - 当我想在 iOS 中获取价值核心数据时出错

当我想在地图视图中搜索核心数据时,目标无法搜索数据,请帮助我收到此错误

当要打印该字符串时,目标是输出为

0 投票
0 回答
641 浏览

ios - iOS 复制自定义对象

我使用以下方法加载自定义对象:

为了不在我必须做的几个循环中执行一百次 loadNibNamed 操作,我计划将此对象用作“基础”对象,我将填充不同的信息,但始终基于相同的设计(实际上就像在 UICollectionView 中一样)。

我的第一步是在我的循环中设置如下:

不幸的是,MyViewItem 类试图访问我没有实现的“copyWithZone”。在这一点上,我尝试在其上继承 NSObject(我认为所有 NSObject 都实现了“复制”方法),但问题仍然存在相同的错误。所以我尝试继承 NSCopying,并实现我的 copyWithZone 方法,该方法如下(虽然不起作用):

我错过了什么?我已经阅读了许多有关复制的问题,但我无法解决我的问题:(谢谢!

0 投票
1 回答
1342 浏览

ios - UITableViewCell copyWithZone 无法识别的选择器发送到实例

我正在尝试使用 KVO 更新我的自定义 tableviewcell (DHtableViewCell) 中的值。我不断收到此错误。我知道还有其他人有同样的例外,但他们的解决方案没有帮助。

实现 tableView:cellForIndexPath 的类设置了一个名为 description 的属性

所以代码的工作方式是,在 tableview:cellForIndexpath 方法中我设置了 cell.description 属性。然后观察者看到值已经改变然后它去更新 UILabel 对应的文本。

我难住了。为什么它试图调用copyWithZone?我该如何解决这个问题?

0 投票
0 回答
282 浏览

ios - 复制已在 IB 中创建的 UICollectionView

我正在尝试复制我在 IB 中所做的 collectionView。有没有什么快速的方法可以用来拥有 collectionView 的深层副本,而不是在我的代码中以编程方式创建它并添加单元格视图。

更新 1:在我的故事板中创建的 UICollectionView