gpt4 book ai didi

objective-c - 当我调用 `-copy` 时,为什么我的 NSImage 的 name 属性没有被复制?

转载 作者:行者123 更新时间:2023-12-03 16:35:15 36 4
gpt4 key购买 nike

我有一个 NSArray (“对象”),其中包含 NSImage 类型的对象

我发现,当我尝试复制数组中的每个图像时,NSImage 上的 name 属性不会被复制。

   for (NSObject* object in objects)
{
NSMenuItem* menuItem = nil;
if ([object isKindOfClass:[NSImage class]])
{
NSImage* image = [object copy];
//Breakpoint here

这是上面断点处我的变量 View 的屏幕截图 ^^

enter image description here

name 属性怎么可能没有被复制?

最佳答案

图像上的名称用作特殊的注册机制,以便您稍后可以按名称查找图像。因此,每个名称只能有一张图像。如果您更改图像上的名称,则原始注册将被删除,并添加新的注册。如果图像已经具有您尝试设置的名称,则该设置将被拒绝。

实际上,您所看到的是尝试根据不同的图像重新注册图像名称。该图像可能是一个副本,因此您可能认为保留该名称很好,但您不知道私有(private)实现是什么,并且您也没有考虑潜在的可变子类。

因此,您无法在多个不同的图像之间共享名称。如果您想做类似的事情,那么您需要使用自定义方案/方法单独管理名称/标识符。

关于objective-c - 当我调用 `-copy` 时,为什么我的 NSImage 的 name 属性没有被复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33739901/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com