Conversation
| init(_ photoResult: PhotoResult, date: ISO8601DateFormatter) { | ||
| self.id = photoResult.id | ||
| self.size = CGSize(width: photoResult.width, height: photoResult.height) | ||
| self.createdAt = date.date(from: photoResult.createdAt ?? "") | ||
| self.welcomeDescription = photoResult.description | ||
| self.thumbImageURL = photoResult.urls.thumb | ||
| self.largeImageURL = photoResult.urls.full | ||
| self.regularImageURL = photoResult.urls.regular | ||
| self.smallImageURL = photoResult.urls.small | ||
| self.isLiked = photoResult.likedByUser | ||
| } |
There was a problem hiding this comment.
Наверное, лучше будет вомпользоваться обычным init-ом, где принимаются все параметры структуры. Т. е.:
init(
id: String,
size: CGSize,
...
) {
self.id = id
self.size = size
...
}
Это поможет уменьшить связанность структур, что позволит не создовать PhotoResult, когда это не нужно (как происходить при изменении лайка), => упростит тестирование кода использующего структуру и использование данной структуры
|
|
||
| private let urlSession = URLSession.shared | ||
|
|
||
| private let dateFormatter = ISO8601DateFormatter() |
There was a problem hiding this comment.
Классно, что воспользовался именно ISO8601DateFormatter)
|
|
||
| static let shared = ImagesListService() | ||
|
|
||
| static let didChangeNotification = Notification.Name(rawValue: "ImagesListServiceDidChange") |
There was a problem hiding this comment.
🔥, что с маленькой буквы называется константа. Так, стиль её названия совпадает с остальным кодом)
|
|
||
| guard currentTask == nil else { return } | ||
|
|
||
| let nextPage = lastLoadedPage == nil ? 1 : lastLoadedPage! + 1 |
There was a problem hiding this comment.
Можно переформулировать, чтобы лишний раз не использовать force unwrap:
let nextPage = (lastLoadedPage ?? 0) + 1
No description provided.