Good DayAlamofire:アンラッピング中に予期せずnilが見つかりました。
私は、既にAPIを作成し、Alamofireを使用して通信している企業と通信するiOS Swiftアプリケーションを持っています。私が持っている問題は、APIは、おそらくヌルにいくつかの時間を返すことができるであり、これは次のような問題が発生:
「致命的なエラー:オプションの値をアンラップしながら、予想外にnilを見つけ、」辞書から読み込みマイコードスニペットがある
を次のように:私はそのを処理する前にnullを辞書内のオブジェクトをチェックする方法が必要ですか私は、デフォルト値のいくつかのタイプを設定する必要が
if let LowRate = HotelList[i]["LowRate"] as? Decimal!{
HList._LowRate = LowRate
}
私は、複数の質問とGoogleサイトを見直しています。
HotelData = "<null>";
HotelList =(
{
Address1 = "124 Oceanview Road";
Address2 = Oneroa;
BookingUrl = "<null>";
City = " Auckland";
Country = "New Zealand";
CurrencyCode = "<null>";
DateViewed = "<null>";
Description = "<null>";
Directions = "<null>";
Distance = "<null>";
GeoPoint = "<null>";
HighRate = "<null>";
ImageUrl = "<null>";
LowRate = "<null>";
MinChildAge = "<null>";
Name = "The Oyster Inn";
NavUrl = "<null>";
PostalCode = "<null>";
State = "<null>";
WebsiteUrl = "<null>";
distance = "<null>";
hotelID = 130;
isActive = 1;
isBlocked = 0;
isChildrenAllowed = "<null>";
isFavorite = 0;
isPromoNotified = 0;
showDouble = "<null>";
}
);
RowCount = 11;
hasError = 0;
};
私はJSONのためAlamofireを使用していますが、nullの可能性を返すことができる20個のいずれかのフィールドに返されたヌルがない限り、それは動作しますが、以下のように
JSON nullの例があります。
オプションのアンラッピング中に上記のようにnullの結果に対していくつかの検証チェックを行うのに誰も助けてくれますか?
よろしく
'として? Decimal! 'アンラップを強制しないでください。 '!'を 'if let'の別のレベルで置き換えて、nilの可能性を扱います。 – Moritz
良い日。あなたの返事をありがとう、私に "!" nilの検証のために "if let"を使用しますか?よろしくご協力ありがとうございます –
あなた自身のコードの例があります。 :)これは既にどこでも説明されています。 "オプション"と "オプションバインディング"(これは 'if let'システムの名前です)を検索します。 – Moritz