问题标签 [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 回答
762 浏览

objective-c - 在 Objective-C 中覆盖 copyWithZone:

有人可以告诉我如何覆盖-copyWithZone:

假设我有一个 NSString 对象, NSInteger 对象作为类成员。

0 投票
2 回答
74 浏览

ios - 复制项目的数组比较失败

我正在尝试比较两个具有我的模型对象的可变数组。在一个数组中,我按原样创建模型对象,而在另一个数组中,我正在使用copyWithZone(我的模型是 的子类NSObject)创建原始对象的副本。但是,当我比较时,即使我没有改变任何东西,它也总是失败。

我打印了两个数组只是为了检查,它们似乎都有相同的对象。

isEqualToArray不适用于复制的项目?

有人可以指出我哪里出错了吗?或者是否有其他方法可以进行这种比较?

0 投票
1 回答
2285 浏览

objective-c - Objective-c:自定义类实例作为字典键,当键存在时返回 nil

我有一个自定义类,我将其实例用作字典中的键。问题是,有时(并非所有时间)使用我的自定义实例键之一从字典中请求值nil时,当键确实在字典中时会返回。我在网上浏览了如何使用自定义对象作为字典键,我所能找到的只是你需要实现NSCopying我已经完成的协议。

我的课看起来像这样:

然后我把其中一些东西放在一个可变字典中,如下所示:

现在我想做的只是从字典中弹出一个键/值对,所以我这样做:

这就是我遇到问题的地方。 大多数情况下,这工作正常。但是,有时会objectForKey:theKey返回nil. 我在我的代码中放了一个断点,并且可以确认它theKey确实在theDict.

我在这里做错了什么?

0 投票
1 回答
911 浏览

objective-c - 在符合 NSCopying 和 NSObject 的协议上没有已知的选择器“复制”实例方法

当我编译下面的代码时,id copiedData = [_localData copy];会导致编译器错误“选择器'复制'没有已知的实例方法”。鉴于它_localData是类型id<IGTestClassData>并且IGTestClassData符合两者NSCopyingNSObject为什么它没有copy方法?

IGTestClass.h 文件

IGTestClass.m 文件

0 投票
4 回答
7239 浏览

ios - 警告:“将 'NSObject *' 发送到不兼容类型 'id 的参数'

我被这个警告震惊了好几个小时......我得到了

代码是,

警告 :

“将 'NSObject *' 发送到不兼容类型 'id' 的参数

aKey在此处将参数传递给参数

0 投票
3 回答
68 浏览

objective-c - 尝试修改 nscopied 对象的属性时出错

我创建了一个模型,该模型主要包含一个嵌套的自定义对象数组,用于拆分视图(两个 UITableViews)“待办事项”列表类型应用程序。左边(主)是列表,右边(细节)是列表 :) 一些其他变量保存在一些类中,如 isSelected、isExpanded...

所有这些类都实现了 NSCopying 协议。当我制作主列表项的副本并更改有效的副本名称时,但如果我更改属于该主列表项的详细列表项中的任何内容,则副本和原始项都会更改。所以我想我的问题是如何创建主列表项的深层副本。我认为通过让它们都实现 NSCopying 协议,它会自动执行此操作。我真的不知道用什么来写代码,所以你需要的任何东西都可以问。

0 投票
1 回答
360 浏览

ios - 有没有办法复制EKEvent,或者让它符合NSCopying协议

我保留了一个 EKEvent 实例并想复制它。但是我发现 EKEvent 不符合 NSCopying 协议,所以我尝试在 EKEvent 中添加一个类别,让它符合这个协议,但是,eventIdentifier 是一个只读属性,所以这个方法失败了。

有什么办法吗?

0 投票
0 回答
190 浏览

ios - 在自定义 UIView 对象上实现 NSCopying

我有一个视图,它具有图像视图,subView并且具有引用某个对象(delegate对象)的属性。我对实现copyWithZone:这个对象感到困惑。

同时,我正在尝试使用like[copy setDelegate:[[self delegate] copyWithZone:zone]]编译器报告错误。

是否可以复制添加到视图中的手势识别器。这样当我从文件反序列化对象时,我可以直接使用该对象。

0 投票
1 回答
1156 浏览

ios - CopyWithZone 崩溃:方法

我创建了一个类,它是 NSObject(nsme 作为 GroupClass)的子类。在那个类中,我创建了一个属于“id”的属性,比如

现在我站在我有一个可变数组的路上,该数组包含我的 GroupClass 的实例。所以我以类似的方式获得一份副本

现在我想要另一个 objG 的副本。我搜索了。我找到了 NSCopying 协议。所以我将 NSCopying 作为委托添加到 GroupClass 并添加了 copyWithZone 方法。这里是

在这里我需要深拷贝。但它总是在分配行后崩溃。请帮助我。谢谢。

0 投票
0 回答
52 浏览

ios - 将 MPMoviePlayerController 复制到其他类

我有以下情况

我的课堂上有 MPMovieController,它播放得很好。在按钮单击时,我想将该 MPMovieController 移动到其他类并希望将其添加到该类的视图中为此我已经完成了

问题是,当我将 MPMovieController 对象添加到其他类(其他类视图添加子视图 MPMoviePlayer 对象的视图)时,它会从第一类中删除,可能是因为我传递了相同的引用。因此,我想创建 MPMovieController 的副本,然后传入第二个类,这样它就不会改变原始对象。我怎样才能做到这一点。