0%

Present View Example


ViewController

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import UIKit

class ViewController: UIViewController {

let label = UILabel()
let button = UIButton()

var number = 0

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .random()

setupLabel()
setupButton()
}

func setupLabel() {
label.frame.size = CGSize(width: view.frame.width, height: 100)
label.center = view.center
label.text = "\(number)"
label.textColor = .random()
label.textAlignment = .center
label.font = UIFont(name: "Arial", size: 90)

view.addSubview(label)
}

func setupButton() {
button.frame = CGRect(x: 0, y: view.bounds.height - 200,
width: view.bounds.width, height: 100)
button.setTitle("Go to Next View", for: .normal)
button.setTitleColor(.random(), for: .normal)
button.titleLabel?.font = UIFont(name: "Arial", size: 20)
button.titleLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
button.titleLabel?.textAlignment = NSTextAlignment.center
button.addTarget(self, action: #selector(didTapButton(_:)), for: .touchUpInside)

view.addSubview(button)
}

@objc
func didTapButton(_ sender: UIButton) {
let nextVC = NextViewController()
nextVC.modalPresentationStyle = .fullScreen
nextVC.modalTransitionStyle = .flipHorizontal

number += 1
present(nextVC, animated: true, completion: nil)
}

}

NextViewController

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import UIKit

class NextViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .random()

setupButton()
}

override func viewWillAppear(_ animated: Bool) {
setupLabel()
}

func setupLabel() {
let label = UILabel()

guard let vc = presentingViewController as? ViewController else { return }

label.frame.size = CGSize(width: view.frame.width, height: 100)
label.center = view.center
label.text = "\(vc.number)"
label.textColor = .random()
label.textAlignment = .center
label.font = UIFont(name: "Arial", size: 90)

view.addSubview(label)
}

func setupButton() {
let button = UIButton()

button.frame = CGRect(x: 0, y: view.bounds.height - 200, width: view.bounds.width, height: 100)
button.setTitle("Back to Pervious View", for: .normal)
button.setTitleColor(.random(), for: .normal)
button.titleLabel?.font = UIFont(name: "Arial", size: 20)
button.titleLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
button.titleLabel?.textAlignment = NSTextAlignment.center
button.addTarget(self, action: #selector(didTapButton(_:)), for: .touchUpInside)

view.addSubview(button)
}

@objc
func didTapButton(_ sender: UIButton) {
guard let vc = presentingViewController as? ViewController else { return }

vc.number += 1
vc.label.text = "\(vc.number)"
vc.label.textColor = .random()
vc.button.setTitleColor(.random(), for: .normal)
vc.view.backgroundColor = .random()

dismiss(animated: true, completion: nil)
}

}

After read these codes you might have a question about .random(), because UIColor has no random method. I’ll let you know how to bring random method in your project. It’ll make your app more colorful.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
extension CGFloat {
static func random() -> CGFloat {
return CGFloat(arc4random()) / CGFloat(UInt32.max)
}
}

extension UIColor {
static func random() -> UIColor {
return UIColor(red: .random(),
green: .random(),
blue: .random(),
alpha: 1.0)
}
}

here is the result of these codes

Example Video

1
2
3
4
5
6
7
8
9
10
11
12
func plusAllDigits(_ number: Int) -> Int {
var sum = 0

for digit in String(number) { sum += Int(String(digit))! }

return sum
}

plusAllDigits(13413)
// 12
plusAllDigits(100000)
// 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
func isHarshad(_ number: Int) -> Bool {
var sum = 0

for digit in String(number) { sum += Int(String(digit))! }

return number % sum == 0
}

isHarshad(9)
// true
isHarshad(777)
// true
isHarshad(123)
// false

1
2
3
4
5
6
func plusOne(to number: Int) -> Int { number * (number + 1) / 2 }

plusOne(to: 10)
// 55
plusOne(to: 100)
// 5050

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func ifNumberHasThreeSixNinePrintAsteriskFromOne(to here: UInt) {

for number in 1 ... here {
let hasThreeSixNine = String(number).contains("3") || String(number).contains("6") || String(number).contains("9")

if hasThreeSixNine { print("*", terminator: " ") } else { print(number, terminator: " ") }
}
print("")
}

ifNumberHasThreeSixNinePrintAsteriskFromOne(to: 10)
// 1 2 * 4 5 * 7 8 * 10
ifNumberHasThreeSixNinePrintAsteriskFromOne(to: 23)
// 1 2 * 4 5 * 7 8 * 10 11 12 * 14 15 * 17 18 * 20 21 22 *

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
func getGreastCommonDivisorAndLeastCommonMultiple(firstNumber: Int, secondNumber: Int) -> Dictionary<String, Int> {

var greastCommonDivisorAndLeastCommonMultiple = Dictionary<String, Int>()

func getGreastCommonDivisor(_ m: Int, _ n: Int) -> Int {
var a: Int = 0
var b: Int = max(m, n)
var r: Int = min(m, n)

while r != 0 {
a = b
b = r
r = a % b
}

return b
}

func getLeastCommonMultiple(_ m: Int, _ n: Int) -> Int {
m * n / getGreastCommonDivisor(m, n)
}

greastCommonDivisorAndLeastCommonMultiple.updateValue(getGreastCommonDivisor(firstNumber, secondNumber), forKey: "Greatest Common Divisor")
greastCommonDivisorAndLeastCommonMultiple.updateValue(getLeastCommonMultiple(firstNumber, secondNumber), forKey: "Least Common Multiple")

return greastCommonDivisorAndLeastCommonMultiple
}

getGreastCommonDivisorAndLeastCommonMultiple(firstNumber: 140, secondNumber: 72)
// ["Greatest Common Divisor": 4, "Least Common Multiple": 2520]
getGreastCommonDivisorAndLeastCommonMultiple(firstNumber: 85, secondNumber: 500)
//["Greatest Common Divisor": 5, "Least Common Multiple": 8500]

Class


Make this picture to a class with inheritance

Inheritance

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
class Animal {
var brain = true
var legs: Int

init(legs: Int) {
self.legs = legs
}
}

class Human: Animal {
override init(legs: Int) {
super.init(legs: legs)
}
}

class Pet: Animal {
var fleas: Int

init(fleas: Int) {
self.fleas = fleas
super.init(legs: 4)
}
}

class Dog: Pet {
override init(fleas: Int) {
super.init(fleas: fleas)
}
}

class Cat: Pet {
override init(fleas: Int) {
super.init(fleas: fleas)
}
}

let animal = Animal(legs: 0)
animal.brain
// ture
animal.legs
// 0

let human = Human(legs: 2)
human.brain
// true
human.legs
// 2

let pet = Pet(fleas: 0)
pet.brain
// true
pet.legs
// 4
pet.fleas
// 0

let dog = Dog(fleas: 8)
dog.brain
// true
dog.legs
// 4
dog.fleas
// 8

let cat = Cat(fleas: 4)
cat.brain
// true
cat.legs
// 4
cat.fleas
// 4

Class


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Dog {
var name: String
var age: Int
var weight: Double
var breed: String

init(name: String, age: Int, weight: Double, breed: String) {
self.name = name
self.age = age
self.weight = weight
self.breed = breed
}

func bark(to someone: String) {
print("Bark to \(someone)")
}

func eat(_ food: String) {
print("Eat \(food)")
}
}

var goldenRetriever = Dog(name: "Golden", age: 2, weight: 10.2, breed: "Golden Retriever")

goldenRetriever.bark(to: "theif")
goldenRetriever.eat("dog food")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Student {
var name: String
var age: Int
var school: String
var grade: Int

init(name: String, age: Int, school: String, grade: Int) {
self.name = name
self.age = age
self.school = school
self.grade = grade
}

func study(about subject: String) {
print("Study about \(subject)")
}

func eat(_ food: String) {
print("eat \(food)")
}

func sleep(for hour: Int) {
hour == 1 ? print("sleep for an hour") : print("sleep for \(hour) hours")
}
}

var soohanlee = Student(name: "Soohan Lee", age: 19, school: "JukJeon", grade: 3)

soohanlee.study(about: "Swift")
soohanlee.eat("Gukbap")
soohanlee.sleep(for: 1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Phone {
var model: String
var price: Int
var haveFaceID: Bool

init(model: String, price: Int, haveFaceID: Bool) {
self.model = model
self.price = price
self.haveFaceID = haveFaceID
}

func call(to someone: String) {
print("call to \(someone)")
}

func text(to someone: String) {
print("text to \(someone)")
}
}

let iPhone4 = Phone(model: "iPhone 4", price: 9900000, haveFaceID: false)
iPhone4.call(to: "Mom")
iPhone4.text(to: "Dad")
1
2
3
4
5
6
7
8
9
10
11
12
13
class coffee {
var name: String
var price: Int
var origin: String

init(name: String, price: Int, origin: String) {
self.name = name
self.price = price
self.origin = origin
}
}

let cafeLatte = coffee(name: "Cafe Latte", price: 3000, origin: "Ethiopia")

Make Caculator with class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Calculator {
private var value = 0.0

func add(_ number: Double) { value += number }

func subtract(_ number: Double) { value -= number }

func multiply(_ number: Double) { value *= number }

func divide(_ number: Double) { value /= number }

func reset() { value = 0 }

func getValue() -> Double { value }
}

let calculator = Calculator()

calculator.add(10)
calculator.getValue()
// 10

calculator.add(5)
calculator.getValue()
// 15

calculator.subtract(9)
calculator.getValue()
// 6

calculator.subtract(10)
calculator.getValue()
// -4

calculator.multiply(4)
calculator.getValue()
// -16

calculator.multiply(-10)
calculator.getValue()
// 160

calculator.divide(10)
calculator.getValue()
// 16

calculator.reset()
calculator.getValue()
// 0

Make some formulas with class

formulas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
class Square {
private var width: Double
private var height: Double

private var area: Double
private var perimeter: Double

init(width: Double) {
self.width = width
self.height = width

area = width * height

perimeter = 4 * width
}

func getArea() -> Double { area }
func getPerimeter() -> Double { perimeter }
}

let square = Square(width: 13)
square.getArea()
// 169
square.getPerimeter()
//52

class Rectangle {
private var width: Double
private var height: Double

private var area: Double
private var perimeter: Double

init(width: Double, height: Double) {
self.width = width
self.height = height

area = width * height

perimeter = (2 * width) + (2 * height)
}

func getArea() -> Double { area }
func getPerimeter() -> Double { perimeter }
}

let rectangle = Rectangle(width: 5, height: 12)
rectangle.getArea()
// 60
rectangle.getPerimeter()
// 34

class Circle {
private var radius: Double

private var area: Double
private var circumference: Double

init(radius: Double) {
self.radius = radius

area = Double.pi * pow(radius, 2)

circumference = 2 * Double.pi * radius
}

func getArea() -> Double { area }
func getcircumference() -> Double { circumference }
}

let circle = Circle(radius: 6)
circle.getArea()
// 113.09733552923255
circle.getcircumference()
// 37.69911184307752

class Triangle {
private var width: Double
private var height: Double

private var area: Double

init(width: Double, height: Double) {
self.width = width
self.height = height

area = width * height / 2
}

func getArea() -> Double { area }
}

let triangle = Triangle(width: 3, height: 14)
triangle.getArea()
// 21

class Trapezoid {
private var upperWidth: Double
private var lowerWidth: Double
private var height: Double

private var area: Double

init(upperWidth: Double, lowerWidth: Double, height: Double) {
self.upperWidth = upperWidth
self.lowerWidth = lowerWidth
self.height = height

area = 0.5 * height * (upperWidth + lowerWidth)
}

func getArea() -> Double { area }
}

let trapezoid = Trapezoid(upperWidth: 3, lowerWidth: 2, height: 5)
trapezoid.getArea()
// 12.5

class Cube {
private var width: Double
private var height: Double
private var depth: Double

private var volume: Double

init(width: Double) {
self.width = width
self.height = width
self.depth = width

volume = width * height * depth
}

func getVolume() -> Double { volume }
}

let cube = Cube(width: 7)
cube.getVolume()
// 343

class RectangularSolid {
private var width: Double
private var height: Double
private var depth: Double

private var volume: Double

init(width: Double, height: Double, depth: Double) {
self.width = width
self.height = height
self.depth = depth

volume = width * height * depth
}

func getVolume() -> Double { volume }
}

let rectangularSolid = RectangularSolid(width: 3, height: 2, depth: 5)
rectangularSolid.getVolume()
// 30

class CircularCylinder {
private var radius: Double
private var height: Double

private var volume: Double

init(radius: Double, height: Double) {
self.radius = radius
self.height = height

volume = Double.pi * pow(radius, 2) * height
}

func getVolume() -> Double { volume }
}

let circularCylinder = CircularCylinder(radius: 3, height: 6)
circularCylinder.getVolume()
// 169.64600329384882

class Sphere {
private var radius: Double

private var volume: Double

init(radius: Double) {
self.radius = radius

volume = 4 / 3 * Double.pi * pow(radius, 3)
}

func getVolume() -> Double { volume }
}

let sphere = Sphere(radius: 2)
sphere.getVolume()
// 33.510321638291124

class Cone {
private var height: Double
private var radius: Double

private var volume: Double

init(height: Double, radius: Double) {
self.height = height
self.radius = radius

volume = 1 / 3 * Double.pi * pow(radius, 2) * height
}

func getVolume() -> Double { volume }
}

let cone = Cone(height: 2, radius: 3)
cone.getVolume()
// 18.84955592153876

Closure


Optimize clousre

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
let someClosure: (String, String) -> Bool = { (s1: String, s2: String) -> Bool in
let isAscending: Bool

if s1 > s2 {
isAscending = true
} else {
isAscending = false
}

return isAscending
}

let optimizedSomeClosure: (String, String) -> Bool = { $0 > $1 }

someClosure("apple", "banana")
// false
optimizedSomeClosure("apple", "banana")
// false

someClosure("banana", "apple")
// ture
optimizedSomeClosure("banana", "apple")
// ture

let otherClosure: ([Int]) -> Int = { (values: [Int]) -> Int in
var count: Int = 0
for _ in values {
count += 1
}
return count
}

let optimizedOtherClosure: ([Int]) -> Int = { $0.count }

otherClosure([0, 1, 2, 3, 4])
optimizedOtherClosure([0, 1, 2, 3, 4])

otherClosure([0])
optimizedOtherClosure([0])

These functions might seem work differently but short form of closures are just optimized so they return same value.

Optional, Enum



Combine Optional Strings and return a non Optional String

1
2
3
4
5
6
func combineStrings(str1: String?, str2: String?, str3: String?) -> String {
(str1 ?? "") + (str2 ?? "") + (str3 ?? "")
}

combineStrings(str1: "AB", str2: "CD", str3: "EF")
// "ABCDEF"

Calculate using enumeration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
enum Arithmetic {
case addition, subtraction, multiplication, division

func calculate(_ firstNumber: Double, _ secondNumber: Double) -> Double {
switch self {
case .addition:
return firstNumber + secondNumber
case .subtraction:
return firstNumber - secondNumber
case .multiplication:
return firstNumber * secondNumber
case .division:
return firstNumber / secondNumber
}
}
}

Arithmetic.addition.calculate(10, 5)
// 15

Arithmetic.subtraction.calculate(10, 5)
// 5

Arithmetic.multiplication.calculate(10, 5)
// 50

Arithmetic.division.calculate(10, 5)
// 2

Convert celcius to fahrenheit and kelvin using enumertaion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
enum Temperature {
case celcius(Double), fahrenheit(Double), kelvin(Double)

func toCelcius() -> Double {
switch self {
case .celcius(let celcius):
return celcius
case .fahrenheit(let fahrenheit):
return (fahrenheit - 32) * 5 / 9
case .kelvin(let kelvin):
return kelvin + 273
}
}
}

Temperature.celcius(100).toCelcius()
// 100

Temperature.fahrenheit(100).toCelcius()
// 37.77777777777778

Temperature.kelvin(100).toCelcius()
// 373

Calculate using enumeration and recursive call

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
indirect enum ArithmeticExpression {
case number(Int)
case addition(ArithmeticExpression, ArithmeticExpression)
case multiplication(ArithmeticExpression, ArithmeticExpression)
}

let five = ArithmeticExpression.number(5)
let four = ArithmeticExpression.number(4)
let sum = ArithmeticExpression.addition(five, four)
let product = ArithmeticExpression.multiplication(sum, ArithmeticExpression.number(2))

func evaluate(_ expression: ArithmeticExpression) -> Int {
switch expression {
case .number(let number):
return number
case .addition(let firstNumber, let secondNumber):
return evaluate(firstNumber) + evaluate(secondNumber)
case .multiplication(let firstNumber, let secondNumber):
return evaluate(firstNumber) * evaluate(secondNumber)
}
}

evaluate(five)
// 5

evaluate(sum)
// 9

evaluate(product)
// 18

Collection Types (Array, Dictionary, Set)



Return the array of people that has “E” in their favorite fruits

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let appleLeadershipAndTheirFavoriteFruits = [
"Steve Jobs" : "Apple",
"Steve Wozniak" : "Pineapple",
"Jonathan Ive" : "Kiwi",
"Philip W. Schiller": "Mango",
"Craig Federighi" : "Fig",
"Chris Lattner" : "Avocado",
"Jeff Williams" : "Raspberry",
]

func getlistOfHasE(in list: Dictionary<String, String>) -> Array<String> {
var listOfPeopleHasEInTheirFavoriteFruit = Array<String>()

for (person, fruit) in list {
let hasE = fruit.lowercased().contains("e") ? true : false

if hasE {
listOfPeopleHasEInTheirFavoriteFruit.append(person)
}
}

return listOfPeopleHasEInTheirFavoriteFruit
}

getlistOfHasE(in: appleLeadershipAndTheirFavoriteFruits)
// ["Steve Jobs", "Steve Wozniak", "Jeff Williams"]

Sort the array odd numbers go to forward and even numbers go to Backward

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func oddGoToForwardEvenGoToBackward(numbers: Array<Int>) -> Array<Int> {
var odds = Array<Int>()
var evens = Array<Int>()

for number in numbers {
let isOdd = number % 2 == 1 ? true : false

isOdd ? odds.append(number) : evens.append(number)
}

return odds + evens
}

oddGoToForwardEvenGoToBackward(numbers: [2, 8, 7, 1, 4, 3])
// [7, 1, 3, 2, 8, 4]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
func howManyNumbers(in numbers: Array<Int>) {
var numberCounts = Dictionary<Int, Int>()
var countedNumbers = Array<Int>()

for i in 0 ... 9 {
numberCounts[i] = 0
}

for number in numbers {
for compareNumber in 0 ... 9 {
if number == compareNumber {
numberCounts[number]! += 1

if !countedNumbers.contains(number) { countedNumbers.append(number) }
}
}
}

var result = String()

for countedNumber in countedNumbers {
result += "Number \(countedNumber) : Counts \(numberCounts[countedNumber]!), "
}

result = String(result.dropLast(2))

print(result)
}

howManyNumbers(in: [1, 3, 3, 3, 8])
// "Number 1 : Counts 1, Number 3 : Counts 3, Number 8 : Counts 1"

Reverse a number

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func reverseNumber(of number: Int) -> Int {
var reversedNumber = String()

for chr in String(number).reversed() {
reversedNumber += String(chr)
}

return Int(reversedNumber)!
}

reverseNumber(of: 123)
// 321

reverseNumber(of: 400000)
// 4

Determine the number has unique digits or not

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func isUniqueDigit(number: Int) -> Bool {
var characterArray = Array<Character>()

for chr in String(number) {
characterArray.append(chr)
}

return characterArray.count == Array(Set(characterArray)).count
}

isUniqueDigit(number: 123456789)
// ture

isUniqueDigit(number: 111111111)
//false

Determine the array has unique letters or not

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
func getUniqueLetters(from letter: Array<String>) -> Array<String> {
var uniqueLetters = Array<String>()

for i in letter {
var count = 0

for j in letter {
if i == j {
count += 1
}
}

if count == 1 {
uniqueLetters.append(i)
}
}

return uniqueLetters
}

getUniqueLetters(from: ["a", "b", "c", "a", "e", "d", "c"])
// ["b", "e", "d"]

Organize a carnivores phylogeny

phylogney

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
let livingThings = [
"Carnivores": [
"Canidae": [
"Canini": [
"Canina",
"Cerdocyonina",
],
"Urocyon": [
"Urocyon littoralis",
"Urocyon cinereroargenteus",
],
],
"Felidae": [
"Pantherinae": [
"Neofelis",
"Panthera",
],
"Felinae": [
"Pardofelis",
"Catopuma",
],
],
],
]

print(livingThings["Carnivores"]!["Felidae"]!["Felinae"]!)
// ["Pardofelis", "Catopuma"]

Get two natural number and combine them into one number

1
2
3
4
5
6
func stickTwoNaturalNumbers(firstNumber: Int, secondNumber: Int) -> Int {
Int(String(firstNumber) + String(secondNumber))!
}

stickTwoNaturalNumbers(firstNumber: 12, secondNumber: 34)
// 1234

Compare two strings are the same or not

1
2
3
4
5
6
7
8
9
func isSameLetter(firstLetter: String, secondLetter: String) -> Bool {
firstLetter == secondLetter
}

isSameLetter(firstLetter: "a", secondLetter: "a")
// true

isSameLetter(firstLetter: "a", secondLetter: "b")
// false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func printDivisor(of number: Int) {
for i in 1...number {
if number % i == 0 {
print(i, terminator: " ")
}
}
print()
}

printDivisor(of: 10)
// 1 2 5 10

printDivisor(of: 100)
// 1 2 4 5 10 20 25 50 100

1
2
3
4
5
6
7
8
9
10
11
func printCommonMultipleOfThreeAndFive() {
for i in 1...100 {
if (i % 3 == 0) && (i % 5 == 0) {
print(i, terminator: " ")
}
}
print()
}

printCommonMultipleOfThreeAndFive()
// 15 30 45 60 75 90

Determine the number that is prime number or not

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func isPrime(number: Int) -> Bool {
for i in 2..<number {
if number % i == 0 {
return false
}
}
return true
}

isPrime(number: 7919)
// true

isPrime(number: 34573245731123)
// false

Gets a natural number and returns the number in the order of the number in the Fibonacci sequence

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func getFibonacciNumber(of number: Int) -> Int {
var fibonacciNumbers = Array(repeating: 0, count: number)

fibonacciNumbers.insert(0, at: 0)
fibonacciNumbers.insert(1, at: 1)

for i in 2..<fibonacciNumbers.count {
fibonacciNumbers[i] = fibonacciNumbers[i - 2] + fibonacciNumbers[i - 1]
}
return fibonacciNumbers[number - 1]
}

getFibonacciNumber(of: 4)
// 2

getFibonacciNumber(of: 30)
// 514229

Determine the year that is leap year or not

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
func isLeapYear(_ year: Int) -> Bool {
if year % 4 == 0 {
if year % 100 == 0 {
if year % 400 == 0 {
return true
}
return false
}
return true
}
return false
}

isLeapYear(200)
// false

isLeapYear(2016)
// true

How to creat a blog with hexo

1
2
3
4
5
6
7
8
$ brew install node
$ npm -v
$ sudo npm install -g hexo-cli
$ hexo
$ hexo init ghblog
$ cd ghblog
$ npm install
$ hexo new post {post-name}