Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 获取NSManagedObject的NSArray的最简单方法_Objective C_Xcode_Macos_Nsarray_Nsarraycontroller - Fatal编程技术网

Objective c 获取NSManagedObject的NSArray的最简单方法

Objective c 获取NSManagedObject的NSArray的最简单方法,objective-c,xcode,macos,nsarray,nsarraycontroller,Objective C,Xcode,Macos,Nsarray,Nsarraycontroller,这是一个非常基本的问题,但我正在努力寻找答案。我有一个名为iSelectedObject的NSManagedObject 假设我以后有一个条件,从NSOutlineView中提取representedObject,或者从NSArrayController中提取selectedObjects,这取决于(与此问题无关)条件,然后我需要运行一个方法,该方法需要将NSManagedObject提供给它。当我从NSOutlineView中为它提供representedObject时,它工作得很好-以这种方

这是一个非常基本的问题,但我正在努力寻找答案。我有一个名为iSelectedObject
NSManagedObject

假设我以后有一个条件,从
NSOutlineView
中提取
representedObject
,或者从
NSArrayController
中提取
selectedObjects
,这取决于(与此问题无关)条件,然后我需要运行一个方法,该方法需要将
NSManagedObject
提供给它。当我从
NSOutlineView
中为它提供
representedObject
时,它工作得很好-以这种方式选择时,它自然是一个
NSManagedObject
。但是,如果我抓取我的
NSArrayController
selectedObjects
,它就是一个
NSArray
,我无法将它提供给我的方法

我知道
NSArray
可以包含
NSManagedObject
,我觉得解决方案可能很简单,只需深入我的
NSArray
或类似的东西一个层次,但我如何将我的
NSArray
提供给我的方法,该方法需要和
NSManagedObject
。我应该以某种方式提取/转换它吗


(作为帮助:我甚至尝试将
NSArray
提供给该方法的原因是,它和可选的
NSManagedObject
都有相同的数据保存在内部。也就是说,如果我使两个函数完全相同,其中一个函数需要
NSArray
,另一个函数需要
NSManagedObject
,那么它们工作得很好y、 我可以分别选择一个
NSArray
NSManagedObject
的唯一原因是,这似乎是
selectedObjects
representedObject
分别吐出的默认值。如果我可以为这两个对象分别拔出一个或另一个,这将是一个完美的解决方案,但我不确定如何做到这一点o、 )

如果NSArray只包含一个对象,您可以使用

[array lastObject];
如果有多个对象,则运行数组并使用

[object isKindOfClass:[NSManagedObject class]];

无论哪种方式,这都会给你一个NSManagedObject,你可以用它来做你的方法。

我可以将方法改为使用类型
id
,而不是
NSManagedObject
,这就停止了它的抱怨。

那么这个神秘的方法对数组和单个对象都有效,它做了什么呢de,理解您遇到的问题会容易得多。如果传递给方法的类型不重要,您可以将参数声明为type
id
,您就完成了。啊哈!我认为
id
可能会很好地解决这个问题!谢谢!我已经非常具体地避免了
id
很久了,所以我没有这么做甚至可以考虑在这里使用它。谢谢。不适用于这种特殊情况,但通常是这样,这是一个很好的答案。