Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Ios ';任何对象';不';“我没有会员”;contactUID";甚至连Intelitype都说是吗?_Ios_Arrays_Json_Xcode_Swift - Fatal编程技术网

Ios ';任何对象';不';“我没有会员”;contactUID";甚至连Intelitype都说是吗?

Ios ';任何对象';不';“我没有会员”;contactUID";甚至连Intelitype都说是吗?,ios,arrays,json,xcode,swift,Ios,Arrays,Json,Xcode,Swift,另一个ameture hour Swift编程问题 我一直在从对象“Any object”“Results”数组返回对象的值。intellitype表示数组中有一个值为“ContactUID”的对象,但是当我尝试使用ContactUID时,会出现一个错误,即“AnyObject”不包含成员“ContactUID” 名为HBCContactList的数组成功返回FirstName、LastName和代码中屏幕上列出的所有其他项。但是,它不会返回值“ContactUID” 这个模型有正确的项目。然而

另一个ameture hour Swift编程问题

我一直在从对象“Any object”“Results”数组返回对象的值。intellitype表示数组中有一个值为“ContactUID”的对象,但是当我尝试使用ContactUID时,会出现一个错误,即“AnyObject”不包含成员“ContactUID”

名为HBCContactList的数组成功返回FirstName、LastName和代码中屏幕上列出的所有其他项。但是,它不会返回值“ContactUID”

这个模型有正确的项目。然而,与所有其他人不同。。。ContactUID是INT64而不是字符串。。。我已经添加了一些屏幕截图来帮助解释过程。对不起,这听起来很复杂,但我想我错过了一些愚蠢的事情


在iOS上自动完成并不总是准确的,它通常只列出所有可能的选择器/方法

这里的问题的根源在于,即使您知道HCCContactList只保存HBCDirectoryModel对象,编译器也不会作为
MOContext。executeFetchRequest(freq,error:nil)
返回一个数组,该数组声明它包含
任何对象(
[AnyObject]
/
数组
)。为了将这些对象中的任何一个引用为
HBCDirectoryModel
,您需要对此类型执行强制转换

最简单的方法是将
HCCContactList
声明为
HBCDirectoryModel
的数组,而不是
AnyObject
,然后将调用
MOContext.executeFetchRequest()
的结果强制转换为同一类型

你可以这样做

var HCCContactList: Array<HBCDirectoryModel> = []
HCCContactList = MOContext.executeFetchRequest(freq, error: nil) as Array<HBCDirectoryModel>

使用第二个较短的语法解决了我遇到的问题。你说的话很有道理。。你会说声明为ANYOBJECT是不好的做法吗?是的,在Swift中工作时,你应该明确类型,因为它提供了很多好处。然而,由于许多苹果框架都是在后台用Objective-C编写的,它们通常会返回您
[AnyObject]
,因为Objective-C不支持通用集合。然而,正如我在上面所展示的,你可以将它们转换成一个普通的集合,并快速加入“原样”阵容。干杯,格伦。当我继续学习的时候,我会把一些其他人换过来,因为我想在最佳实践中工作。谢谢你的帮助。没问题,游泳很愉快
var HCCContactList:[HBCDirectoryModel] = []
HCCContactList = MOContext.executeFetchRequest(freq, error: nil) as [HBCDirectoryModel]