-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpListLoader.swift
52 lines (31 loc) · 1.07 KB
/
pListLoader.swift
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
//
// pListLoader.swift
// Contacts
//
// Created by Furkan Sabaz on 16.01.2019.
// Copyright © 2019 Furkan Sabaz. All rights reserved.
//
import Foundation
enum PListError : Error {
case invalidResource //Dosya bulunamadığı zaman vs
case parsingFailure // Bir dosya var fakat dosyayı import edemiyoruz
}
class pListLoader {
static func array(fileName : String , extension_ : String ) throws -> [[String : String]] {
//dosyanın yolunu bulma
guard let path = Bundle.main.path(forResource: fileName, ofType: extension_) else {
throw PListError.invalidResource
}
//verileri elde etme
guard let data = NSArray(contentsOfFile: path) as? [[String : String]] else {
throw PListError.parsingFailure
}
return data
}
}
class ContactSource {
static var contacts : [Contact] {
let data = try! pListLoader.array(fileName: "ContactsDB", extension_: "plist")
return data.compactMap { Contact(data: $0)}
}
}