2016-10-30 8 views
1

私はいくつかのプロパティを持つデータモデルオブジェクトを持っています。私はときどきいくつかのオブジェクトのプロパティのすべてを持っていない動的な配列を持っています。Swift:インデックスのオブジェクトの配列チェック

どのように何のように配列がインデックス

のDataModel

class Order{ 
    var item0:String? 
    var item1:String? 
    var item2:String? 
} 

配列の場合、私は無事にチェックします:

var myArray = [String]() 

私はチェックの問題を抱えているところガード文があります異なるインデックスの配列内に要素があるかどうかを確認してください。

Btw配列の内部に3つ以上の要素があることはありません。アレイを介し

let orderOne = Order() 

orders.append(orderOne) 

第三ループ:

var orders = [Order]() 
//changed the array's name from myArray to orders instead 

第二の配列へのデータモデルオブジェクトを追加します。配列は、それがプロパティだデータモデルタイプを保持してはならない第一

let order = Order() 
order.item0 = "hat" 
order.item1 = "sneakers" 

myArray.append(order.item0) 
myArray.append(order.item1) 
//sometimes there may or may not be item2 

let placedOrder = Order 

//These guard statements aren't working 
guard case let placedOrder.item0 = myArray[0] else {return} 

guard case let placedOrder.item1 = myArray[1] else {return} 

//There isn't anything at myArray[2] but I need to safely check anyway 
guard case let placedOrder.item2 = myArray[2] else {return} 
+1

は 'if myArray.count <3'または何でも – Paulw11

+1

私はプロパティを格納するために配列を使用しません。異なるプロパティを持つ**構造体**を作成します。 – Honey

+0

@ Paulw11私はそれが良い仕組みではないと思う。あなたがどのパラメータが無名であるかを知りたいかもしれないので... – Honey

答えて

0

要素のプロパティがゼロでないことを確認します。

for order in orders{ 

    if order.item0 != nil{ 
     //do something with order.item0 
    } 

    if order.item1 != nil{ 
     //do something with order.item1 
    } 

    if order.item2 != nil{ 
     //do something with order.item2 
    } 
} 
関連する問題