LoginSignup
6
7

More than 5 years have passed since last update.

Swift Arrayの拡張

Posted at
/// Array拡張メソッド
extension Array {

    /// 指定されたオブジェクトのインデックスを取得
    ///
    /// :param: obj
    /// :returns: みつかった場合インデックス, みつからない場合はnil
    func indexOfObject<T: Equatable>(obj: T) -> Int? {
        if self.count > 0 {
            for (i, objectToCompare) in enumerate(self) {
                let to = objectToCompare as! T
                if obj == to {
                    return i
                }
            }
        }

        return nil
    }

    /// 指定されたオブジェクトを削除
    ///
    /// :param: obj 削除するオブジェクト
    /// :returns: 指定されたオブジェクトを削除した配列
    mutating func removeObject<T: Equatable>(obj: T) -> Array {
        self = self.filter({$0 as? T != obj})
        return self;
    }

}

6
7
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7