我正在摆弄制作一个cocoapod,我正在努力创建一个类Sub OverflowCustomMath()
Dim a As Integer
Dim b As Integer
Dim c As Long
a = 20000
b = 15000
On Error GoTo Err:
Debug.Print a + b
Err:
If (Err.Number = 6) Then
'apply your custom overflow math, as for e.g.
Debug.Print CLng(a) + CLng(b)
End If
End Sub
的子类。
我想从Array
转到子类的原因是因为Array
和Array
在Swift中被区别对待。
我可以创建一个这样的类:
NSArray
但如果我试试这个:
class Test : NSArray {}
或者这个:
class Test : Array {}
我收到错误。
大多数情况下我想要的原因是我可以使用这样的函数:
class Test : [AnyObject] {}
对此:
let i = myArray.randomObject()
我能做什么的想法(相反可能)?
答案 0 :(得分:7)
您可以通过扩展程序向Array添加方法。类似的东西:
extension Array
{
func randomObject() -> Element { return self[ Int( arc4random_uniform( UInt32( self.count ) ) ) ] }
}
现在你可以myArray.randomObject()
其中 myArray 属于数组
编辑:另外,@ Addison正确地指出结构类型不能在Swift中进行子类化。
答案 1 :(得分:0)
您不能将Array
作为子类,因为它是一个结构。然而,NSArray
是一个对象,因此您可以将其子类化。我不确定你要完成什么,但你可能想要符合CollectionType
协议,结构和对象都可以做,以及枚举。