Thursday, June 11, 2015

Arrays

The syntax of declaring an array in Swift is similar to that in Objective c.
 
            Here is an example:
   

Objective c:

NSArray *recipes = @[@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich"];

Swift: 

var recipes = ["Egg Benedict", "Mushroom Risotto", "Full Breakfast", "Hamburger", "Ham and Egg Sandwich"]

While you can put any objects in NSArray or NSMutableArray in Objective C, arrays in Swift can only store items of the same type. In the above example, you can only store strings in the string array. With type inference, Swift automatically detects the array type. But if you like, you can also specify the type in the following form: 


var recipes : String[] = ["Egg Benedict", "Mushroom Risotto", "Full Breakfast", "Hamburger","Ham and Eg Sandwich"]


Like NSArray, the Swift provides various methods for you to query and manipulate an array.
Simply use the count method to find the number of items in the array: 

var numberOfItems = recipes.count

// recipes.count will return 5

In Objective C you use the addObject: method of NSMutableArray to add a new item to an array. Swift makes the operation even simpler. You can add an item by using the “+=” operator: 

recipes += ["Thai Shrimp Cake"]

This applies when you need to add multiple items:

recipes += ["Creme Brelee", "White Chocolate Donut", "Ham and Cheese Panini"]

To access or change a particular item in an array, pass the index of the item by using subscript syntax just like that in Objective C. 

var recipeItem = recipes[0]

recipes[1] = "Cupcake"

One interesting feature of Swift is that you can use “...” to change a range of values. Here is an example:

recipes[1...3] = ["Cheese Cake", "Greek Salad", "Braised Beef Cheeks"]

This changes the item 2 to 4 of the recipes array to “Cheese Cake”, “Greek Salad” and “Braised Beef Cheeks”. (Remember the first item in an array starts with the index 0. This is why index 1 refers to item 2.)

If you print the array onto console, here is the result: 

Egg Benedict
Cheese Cake
Greek Salad
Braised Beef Cheeks
Ham and Egg Sandwich 

No comments:

Post a Comment