2014-09-27 33 views
0

我在swift中扩展Array类。我需要排序的数组,但是当我尝试把它给我的错误Immutable value of type 'Array<T>' only has mutating members named 'sort'在Array扩展Swift上不能调用自己的函数

这里是我的分机:

import UIKit 

extension Array { 

    func sortedArrayByTimeUsingKey(key: String, ascending: Bool) { 

     sort { (firstObject, secondObject) -> Bool in 

      let firstDict = firstObject as [String: AnyObject] 
      let secondDict = secondObject as [String: AnyObject] 

      let firstDateString = firstDict[key]! as String 
      let secondDateString = secondDict[key]! as String 

      let dateFormatter = DateFormatter() 

      let firstDate = dateFormatter.dateFromString(firstDateString)! 
      let secondDate = dateFormatter.dateFromString(secondDateString)! 

      let order = firstDate.compare(secondDate) 

      switch order { 
      case .OrderedAscending: 
       return ascending ? true : false 
      case .OrderedDescending: 
       return ascending ? true : false 
      default: 
       return true 
      } 
     } 
    } 

} 

我怎么能投self是可变的或者我怎么能检查是否self是可变的?

回答

1

添加mutating如果方法修改实例本身,该方法需要一个突变一个。所以只需在func之前添加mutating关键字即可。

相关问题