以下のコードはiPhone 6と5Sシミュレータでは完全に機能しますが、iPhone 5シミュレータでこのコードを実行しようとすると、これらのコード行は機能しません。iPhone 5のカスタム辞書の値を設定しない
self.groupCollection[creditCadKey] = creditCard
self.groupCollection[homeKey] = home
self.groupCollection[boletoKey] = boleto
辞書の値は変更されず、空のままです。私はこれがなぜ起こっているのか分からない。ここでは、完全なコード:
import Foundation
public class Checkout_GroupedPaymentSystem : NSObject {
public var creditCard: [Checkout_PaymentSystem]?
public var home: [Checkout_PaymentSystem]?
public var voucher: [Checkout_PaymentSystem]?
public var boleto: [Checkout_PaymentSystem]?
public let creditCadKey = "Cartão de Crédito"
public let homeKey = "Pagamento em Casa"
public let voucherKey = "Voucher"
public let boletoKey = "Boleto Bancário"
public var groupCollection: [String:[Checkout_PaymentSystem]] = [:]
public init(fromDictionary dictionay: NSDictionary) {
if let creditCardArray = dictionay[creditCadKey] as? [NSDictionary]{
creditCard = [Checkout_PaymentSystem]()
for dic in creditCardArray {
let value = Checkout_PaymentSystem(fromDictionary: dic)
creditCard?.append(value)
}
self.groupCollection[creditCadKey] = creditCard
}
if let homeArray = dictionay[homeKey] as? [NSDictionary]{
home = [Checkout_PaymentSystem]()
for dic in homeArray {
let value = Checkout_PaymentSystem(fromDictionary: dic)
home?.append(value)
}
self.groupCollection[homeKey] = home
}
if let voucherArray = dictionay[voucherKey] as? [NSDictionary]{
voucher = [Checkout_PaymentSystem]()
for dic in voucherArray {
let value = Checkout_PaymentSystem(fromDictionary: dic)
voucher?.append(value)
}
//self.groupCollection[voucherKey] = voucher
}
if let boletoArray = dictionay[boletoKey] as? [NSDictionary]{
boleto = [Checkout_PaymentSystem]()
for dic in boletoArray {
let value = Checkout_PaymentSystem(fromDictionary: dic)
boleto?.append(value)
}
self.groupCollection[boletoKey] = boleto
}
}
}
あなたは問題がiOSの異なるバージョンではありませんか?各シミュレータで使用しているiOSのバージョンは何ですか? initの辞書パラメータを印刷して、毎回同じエントリがあることを確認してください。 – deadbeef
私はすべてのシミュレータでiOS 9.3を使用しています。また、辞書は常に同じです。 –