adında bir üye yok. Rozetteki değeri bir uzak bildirimin userInfo sözlüğünden çıkarmaya çalışıyorum. Pek çok gönderi okudum ve sorunumun bir çözümünü buldum ama kesinlikle memnun değilim! Ben aşağıdakileri yapmak istiyorum { aps = { badge = 7 } }
Swift: '(NSObject, AnyObject)' 'subscript'
bu numarayı çıkarmak için '7' benim userInfo
üzerinden: Yani burada
benim veri yapısı (kötünün çizgiler kaldırılmış) 'dir
self.updateAppIcon(userInfo["aps"]["badge"] as? Int)
Ama
Swift: tabii aşağıdaki hatayı alıyorum
'(NSObject, AnyObject)' adlı bir üye sahip değil 'simge'Yanılmıyorsam, []
, başka bir sözlük olarak yorumlanamayan bir AnyObject döndürmesidir. Daha seksi bir şekilde
func handleRemoteNotifiation(userInfo: [NSObject : AnyObject]) {
if let aps: AnyObject = userInfo["aps"] {
if let apsDict = aps as? [String : AnyObject]{
if let badge: AnyObject = apsDict["badge"] {
self.updateAppIconBadgeNumber(badge as? Int)
}
}
}
}
func updateAppIconBadgeNumber(number: Int?) {
// do stuff here
}
Ama ciddi ... Ben yapabilirdi: Aşağıdaki yapmak olacaktır
bir çalışma çözüm? Daha az satır, daha az cümle, daha az atış, vb. Bu kolay bir şeyin "kod-karmaşık" bir çözümdür.
Teşekkür
Çok teşekkürler!Bu "İsteğe Bağlı Zincirleme" hakkında hiçbir fikrim yoktu. Çözümünüzün ve bağlantınızın her ikisi için teşekkürler! –