ExSwift
A set of Swift extensions for standard types and classes.
Install / Use
/learn @pNre/ExSwiftREADME
ExSwift
Set of Swift extensions for standard types and classes.
Installation
Because of Xcode errors it's not possible to integrate this project with Cocoapods or as Embedded Framework. Read more at Dev Forum
Use submodule and copy source code
- Add ExSwift as a submodule
- Open the
ExSwiftproject folder, and dragExSwiftsub folder with source code into the file navigator of your Xcode project. Make sure you select add to target - Use it
components.takeFirst() { $0.completed }
Contents
Extensions
Array
Examples in the Wiki
Instance Methods
Name | Signature
---- | ---------
first|first () -> Element?
last|last () -> Element?
get|get (index: Int) -> Element?
remove|remove <U: Equatable> (element: U)
at|at (indexes: Int...) -> Array
take|take (n: Int) -> Array
takeWhile|takeWhile (condition: (Element) -> Bool) -> Array
takeFirst|takeFirst (condition: (Element) -> Bool) -> Element?
tail|tail (n: Int) -> Array
skip|skip (n: Int) -> Array
skipWhile|skipWhile (condition: (Element) -> Bool) -> Array
contains|contains <T: Equatable> (item: T...) -> Bool
difference|difference <T: Equatable> (values: [T]...) -> [T]
intersection|intersection <U: Equatable> (values: [U]...) -> Array
union|union <U: Equatable> (values: [U]...) -> Array
unique|unique <T: Equatable> () -> [T]
indexOf|indexOf <T: Equatable> (item: T) -> Int?
indexOf|indexOf (condition: Element -> Bool) -> Int?
lastIndexOf|lastIndexOf <T: Equatable> (item: T) -> Int?
zip|zip (arrays: Array<Any>...) -> [[Any?]]
partition|partition (var n: Int, var step: Int? = nil) -> [Array]<br>partition (var n: Int, var step: Int? = nil, pad: Element[]?) -> [Array]
partitionAll|partitionAll (var n: Int, var step: Int? = nil) -> [Array]
partitionBy|partitionBy <T: Equatable> (cond: (Element) -> T) -> [Array]
shuffle|shuffle ()
shuffled|shuffled () -> Array
sample (random)|sample (size n: Int = 1) -> [T]
max|max <T: Comparable> () -> T
min|min <T: Comparable> () -> T
each|each (call: (Element) -> ())<br>each (call: (Int, Element) -> ())
eachRight|eachRight (call: (Element) -> ())<br>eachRight (call: (Int, Element) -> ())
any|any (call: (Element) -> Bool) -> Bool
all|all (call: (Element) -> Bool) -> Bool
reject|reject (exclude: (Element -> Bool)) -> Array
pop|pop() -> Element
push|push(newElement: Element)
shift|shift() -> Element
unshift|unshift(newElement: Element)
insert|insert (newArray: Array, atIndex: Int)
groupBy|groupBy <U> (groupingFunction group: (Element) -> (U)) -> [U: Array]
countBy|countBy <U> (groupingFunction group: (Element) -> (U)) -> [U: Int]
countWhere|countWhere (test: (Element) -> Bool) -> Int
reduce|reduce (combine: (Element, Element) -> Element) -> Element?
reduceRight|reduceRight <U>(initial: U, combine: (U, Element) -> U) -> U
mapFilter|mapFilter <V> (mapFunction map: (Element) -> (V)?) -> [V]
implode|implode <C: ExtensibleCollection> (separator: C) -> C?
flatten|flatten <OutType> () -> [OutType]
flattenAny|flattenAny () -> [AnyObject]
toDictionary|toDictionary <U> (keySelector:(Element) -> U) -> [U: Element]
toDictionary|toDictionary <K, V> (transform: (Element) -> (key: K, value: V)?) -> [K: V]
cycle|cycle (n: Int? = nil, block: (T) -> ())
bSearch|bSearch (block: (T) -> (Bool)) -> T?
bSearch|bSearch (block: (T) -> (Int)) -> T?
sortUsing|sortUsing<U:Comparable>(block: ((T) -> U)) -> [T]
transposition|transposition (array: [[T]]) -> [[T]]
permutation|permutation (length: Int) -> [[T]]
repeatedPermutation|repeatedPermutation(length: Int) -> [[T]]
combination|combination (length: Int) -> [[Element]]
repeatedCombination |repeatedCombination (length: Int) -> [[Element]]
Class Methods
Name | Signatures
---- | ----------
range|range <U: ForwardIndex> (range: Range<U>) -> Array<U>
Operators
Name | Signature | Function
---- | --------- | --------
-|- <T: Equatable> (first: Array<T>, second: Array<T>) -> Array<T>|Difference
-|- <T: Equatable> (first: Array<T>, second: T) -> Array<T>|Element removal
&|& <T: Equatable> (first: Array<T>, second: Array<T>) -> Array<T>|Intersection
<code>|</code>|<code>| <T: Equatable> (first: Array<T>, second: Array<T>) -> Array<T></code>|Union
* Int|* <ItemType> (array: ItemType[], n: Int) -> [ItemType]|Returns a new array built by concatenating int copies of self
* String|* (array: String[], separator: String) -> String|Equivalent to array.implode(String)
[rangeAsArray: x..y]<br>[rangeAsArray: x...y]|subscript(#rangeAsArray: Range<Int>) -> Array|Returns the sub-array from index x to index y
[x, y, ...]|subscript(first: Int, second: Int, rest: Int...) -> Array|Returns the items at x, y
Int
Examples in the Wiki
Properties
Name |
---- |
NSTimeIntervalyears|
NSTimeIntervalyear|
NSTimeIntervaldays|
NSTimeIntervalday|
NSTimeIntervalhours|
NSTimeIntervalhour|
NSTimeIntervalminutes|
NSTimeIntervalminute|
NSTimeIntervalseconds|
NSTimeIntervalsecond|
Instance Methods
Name | Signatures
---- | ----------
times|times <T> (call: (Int) -> T)<br>times <T> (call: () -> T)<br>times (call: () -> ())
isEven|isEven () -> Bool
isOdd|idOdd () -> Bool
upTo|upTo (limit: Int, call: (Int) -> ())
downTo|downTo (limit: Int, call: (Int) -> ())
clamp|clamp (range: Range<Int>) -> Int<br>clamp (min: Int, max: Int) -> Int
isIn|isIn (range: Range<Int>, strict: Bool = false) -> Bool
digits|digits () -> Array<Int>
abs|abs () -> Int
gcd|gcd (n: Int) -> Int
lcm|lcm (n: Int) -> Int
Class Methods
Name | Signatures
---- | ----------
random|random(min: Int = 0, max: Int) -> Int
Float
Examples in the Wiki
Instance Methods
Name | Signature
---- | ---------
abs|abs () -> Float
sqrt|sqrt () -> Float
round|round () -> Float
ceil|ceil () -> Float
floor|floor () -> Float
clamp|clamp (min: Float, _ max: Float) -> Float
Class Methods
Name | Signatures
---- | ----------
random|random(min: Float = 0, max: Float) -> Float
String
Examples in the Wiki
Properties
Name |
---- |
length|
capitalized|
Instance Methods
Name | Signature
---- | ---------
explode|explode (separator: Character) -> [String]
at|at (indexes: Int...) -> [String]
matches|matches (pattern: String, ignoreCase: Bool = false) -> [NSTextCheckingResult]?
insert|insert (index: Int, _ string: String) -> String
ltrimmed|ltrimmed () -> String
ltrimmed|ltrimmed (set: NSCharacterSet) -> String
rtrimmed|rtrimmed () -> String
rtrimmed|rtrimmed (set: NSCharacterSet) -> String
trimmed|trimmed () -> String
rtrimmed|rtrimmed (set: NSCharacterSet) -> String
toDouble|toDouble() -> Double?
toFloat|toFloat() -> Float?
toUInt|toUInt() -> UInt?
toBool|toBool() -> Bool?
toDate|toDate(format : String? = "yyyy-MM-dd") -> NSDate?
toDateTime|toDateTime(format : String? = "yyyy-MM-dd hh-mm-ss") -> NSDate?
Class Methods
Name | Signature
---- | ---------
random|func random (var length len: Int = 0, charset: String = "...") -> String
Operators
Name | Signature
---- | ---------
[x]|subscript(index: Int) -> String?
[x..y]<br>[x...y]|subscript(range: Range<Int>) -> String
[x, y, z]|subscript (indexes: Int...) -> [String]
S * n|* (first: String, second: Int) -> String
=~|=~ (string: String, pattern: String) -> Bool<br>`=~ (string: String,
