등록된 Notification에 NotificationCenter를 통해 정보를 전달하기 위한 구조체
var name: Notification.Name
// 보내는 방송의 이름 같은 것
var object: Any?
// 발송자가 Obsever에게 보내는 객체.
var userInfo: [AnyHashable : Any]?
// 방송과 관련된 값 또는 객체의 저장소. Notification이 발송될 때, 필요한 데이터를 같이 넘겨준다.
let notificationCenter = NotificationCenter.default
extension Notification.Name {
static let stockInformation = Notification.Name("stockInformation")
static let stockError = Notification.Name("stockError")
}
enum NotificationKey {
case fruit
case stock
}
private func postNotification(for fruit: Fruit, stock: Int) {
notificationCenter.post(name: Notification.Name.stockInformation,
object: nil,
userInfo: [NotificationKey.fruit: fruit,
NotificationKey.stock: stock]
)
네이밍 꿀팁이다~