在 Swift 中使用 sortedArrayUsingSelector
Using sortedArrayUsingSelector in Swift
嘿 Whosebug 的人,
我已经在 swift 中实现了这个 class:
class PCCountedColor {
var color:UIColor
var count:Int
init (color:UIColor, count:Int)
{
self.color = color;
self.count = count;
}
func compare(object:PCCountedColor) -> NSComparisonResult
{
if ( self.count < object.count )
{
return NSComparisonResult.OrderedDescending
}
else if ( self.count == object.count )
{
return NSComparisonResult.OrderedSame
}
return NSComparisonResult.OrderedAscending
}
}
然后我有一个 NSMutableArray 正在填充上面的对象 class:
var sortedColors:NSMutableArray = []
var container:PCCountedColor = PCCountedColor(color:curColor, count: colorCount)
sortedColors.addObject(container)
之后我尝试通过上面的特殊函数对该数组进行排序 class:
sortedColors.sortedArrayUsingSelector(Selector("compare:"))
但我得到的只是一个错误:
SwiftColorArt[1584:42892] *** NSForwarding: warning: object
0x7fd391b25a50 of class 'SwiftColorArt.PCCountedColor' does not
implement methodSignatureForSelector: -- trouble ahead Unrecognized
selector -[SwiftColorArt.PCCountedColor compare:]
我是 Swift 的新手并且已经检查过 Apple's official documentation which can be found here.
我尝试了几种语法变体(添加“:”或删除它们,将函数名称作为字符串传递或不传递……以及各种组合),但都没有帮助。
所以在绝望中我向你求助。
此致,
一月
"SwiftColorArt.PCCountedColor' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector -[SwiftColorArt.PCCountedColor compare:]"
错误消息会告诉您该怎么做。使这个 class 成为 NSObject 的子class,一切都会好起来的。
嘿 Whosebug 的人,
我已经在 swift 中实现了这个 class:
class PCCountedColor {
var color:UIColor
var count:Int
init (color:UIColor, count:Int)
{
self.color = color;
self.count = count;
}
func compare(object:PCCountedColor) -> NSComparisonResult
{
if ( self.count < object.count )
{
return NSComparisonResult.OrderedDescending
}
else if ( self.count == object.count )
{
return NSComparisonResult.OrderedSame
}
return NSComparisonResult.OrderedAscending
}
}
然后我有一个 NSMutableArray 正在填充上面的对象 class:
var sortedColors:NSMutableArray = []
var container:PCCountedColor = PCCountedColor(color:curColor, count: colorCount)
sortedColors.addObject(container)
之后我尝试通过上面的特殊函数对该数组进行排序 class:
sortedColors.sortedArrayUsingSelector(Selector("compare:"))
但我得到的只是一个错误:
SwiftColorArt[1584:42892] *** NSForwarding: warning: object 0x7fd391b25a50 of class 'SwiftColorArt.PCCountedColor' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector -[SwiftColorArt.PCCountedColor compare:]
我是 Swift 的新手并且已经检查过 Apple's official documentation which can be found here.
我尝试了几种语法变体(添加“:”或删除它们,将函数名称作为字符串传递或不传递……以及各种组合),但都没有帮助。
所以在绝望中我向你求助。
此致,
一月
"SwiftColorArt.PCCountedColor' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector -[SwiftColorArt.PCCountedColor compare:]"
错误消息会告诉您该怎么做。使这个 class 成为 NSObject 的子class,一切都会好起来的。