Objective c 将NSArray的内容添加到Swift数组

Objective c 将NSArray的内容添加到Swift数组,objective-c,swift,Objective C,Swift,我在我的应用程序中同时使用swift和objective-c 我有一个CustomClass,我想为该类创建一个swift数组,并从名为oldClass的objective-c类向其添加内容,该类在名为arrayOfCustomClass的NSArray中具有这些对象的数组 var newArray = [CustomClass]() newArray += oldClass.arrayOfCustomClass 这会导致一个错误: '[(CustomClass)]' is not ident

我在我的应用程序中同时使用swift和objective-c

我有一个CustomClass,我想为该类创建一个swift数组,并从名为oldClass的objective-c类向其添加内容,该类在名为arrayOfCustomClass的NSArray中具有这些对象的数组

var newArray = [CustomClass]()
newArray += oldClass.arrayOfCustomClass
这会导致一个错误:

'[(CustomClass)]' is not identical to 'CGFloat'
有什么帮助吗? 谢谢
雷扎

问题是斯威夫特根本不知道NSArray里有什么。必须将NSArray显式强制转换为
[CustomClass]
(最好不要撒谎,否则会在运行时崩溃)。

似乎有效的方法是:

newArray += oldClass.arrayOfCustomClass as AnyObject as [CustomClass]

要安全地执行此操作,您只需尝试可选的强制转换。如果您认为
NSArray
仅包含
CustomClass
类型的元素,则可以执行以下操作:

var newArray = [CustomClass]()
if let customArray = oldClass.arrayOfCustomClass as? [CustomClass] {
    newArray += customArray
}
如果要提取
CustomClass
元素(我知道这与您要求的有点不同),可以这样做:

var newArray = [CustomClass]()
for element: AnyObject in oldClass.arrayOfCustomClass {
    if let custom = element as? CustomClass {
        newArray.append(custom)
    }
}

显示其余的实际代码!什么是
oldClass
?什么是
arrayOfCustomClass
?但这里可能还有其他问题,在你透露什么是
arrayOfCustomClass
之前,你不会知道它到底是什么。正如我下面的回答所示,我需要先对任何对象进行强制转换,然后才能对自定义类进行强制转换,这可以通过可选强制转换安全地完成-请参阅我的答案。@reza23你仍然没有按照我的要求显示你的Objective-C代码,因此你得到了一个错误的强制转换需要对任何物体。这里有些东西你需要修复,但你拒绝展示它是什么。