This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func square(val:Int) throws -> Int { | |
if val == 5 { | |
throw SampleError.sample1 | |
} | |
return val * val | |
} | |
let sqaureValue = try! square(val: 10) | |
print(sqaureValue) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let str = try? sampleThrowError() | |
if let str = str { | |
print(str) | |
} | |
else { | |
print("Str is nil") | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
do { | |
try sampleThrowError() | |
} | |
catch SampleError.sample1 { | |
print("Sample 1 Error caught") | |
} | |
catch { | |
print("For all other cases") | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func sampleThrowError() throws -> String { | |
throw SampleError.sample1 | |
return "" | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum SampleError: Error { | |
case sample1 | |
case sample2(message: String) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import PlaygroundSupport | |
PlaygroundPage.current.needsIndefiniteExecution = true | |
let pairOfNumbers = [(2, 3), (5, 10), (4, 5)] | |
let operationQueue = OperationQueue() | |
//if set 1, it will be serial if commented it will be concurrent | |
operationQueue.maxConcurrentOperationCount = 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let pairOfNumbers = [(2, 3), (5, 10), (4, 5)] | |
class MultiplcationOp : Operation{ | |
var inputPair: [(Int, Int)]? | |
override func main() { | |
guard let inputPair = inputPair else { return } | |
for pair in inputPair{ | |
let result = pair.0 * pair.1 | |
print(result) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Single BlockOperation | |
var result:Int? | |
let multiplication = BlockOperation{ | |
result = 5 * 10 | |
} | |
multiplication.start() | |
result | |
[/code] | |
Multiple operations using BlockOperation: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import PlaygroundSupport | |
PlaygroundPage.current.needsIndefiniteExecution = true | |
let workingQueue = DispatchQueue(label: "net.ithinkdiff.app", attributes: .concurrent) | |
let globalQueue = DispatchQueue.global() | |
let defaultGroup = DispatchGroup() //create a new group | |
func multiplication(_ num: (Int, Int)) -> Int{ | |
sleep(1) //to make the method slower |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import PlaygroundSupport | |
//to run serial queue in playground always make the following true | |
PlaygroundPage.current.needsIndefiniteExecution = true | |
let mainQueue = DispatchQueue.main | |
let globalQueue = DispatchQueue.global() | |
let serialQueue = DispatchQueue(label: "net.ithinkdiff.app") | |
let concurQueue = DispatchQueue(label: "net.ithinkdiff.app.concurr", attributes: .concurrent) |