Looking for remote work in tech?
Download our app Apple App Store Google Play Store
Looking for remote work in tech? Download our mobile app now! Apple App Store Google Play Store

Swift vs. Objective-C


 

June 11, 2014 | By: Adrian

Swift is the new programming language for iOS apps. Swift adds modern features that make programming easier and faster to write. Swift is a scripting language that will be familiar to Objective-C programmers and easy for newcomers to dig into.

Here are some Swift code samples compared side-by-side with Objective-C:

Declaring variables (Swift)

let constantVariable = 50
var myVariable = 32
var myVariable2 = 70.0
var myVariable3 = "Hello World"

Variables don’t need to have their types assigned explicitly. Instead a variables type is acquired implicitly. I declare a contant integer in the sample above by using let and giving it a value of 50. The next three variables are all declared the using var but they are all different types due to their assigned values, an integer, a double, and a string.

Declaring variables (Objective-C)

const int constantVariable = 50;
int myVariable = 32;
double myVariable2 = 70.0;
NSString *myVariable3 = @"Hello World";

In contrast every variable in Objective-C must have its type assigned explicitly and every line of code must end with a ;.

Including values in strings (Swift)

var width = 50
var length = 80
var objectSummary = "The width of the object is (width) and the length is
(length)"

Adding variables into a string to be displayed is as simple as writing(variable Name) within the string.

Including values in strings (Objective-C)

int width = 50;
int length = 80;
NSString *objectSummary =
[NSString stringWithFormat:@"The width of the object is %d and the length is %d",width,length];

In Objective-C the string needs to be formatted with the values that it will receive. The correct type of value must be explicitly stated by using %d for integers, %f for floating point numbers, etc.

If-Statements, Loops, and Arrays (Swift)

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score > 50 {
teamScore += 3
} else {
teamScore += 1
}
}
println(teamScore)

Creating arrays and dictionaries in Swift is as simple as using brackets []. To access their elements you can write the element name or key within brackets like so myArray[myElement]. The example above shows an array of scores with an enhanced for loop iterating through every element in the array.

If-Statements, Loops, and Arrays (Objective-C)

NSArray *individualScores = [NSArray arrayWithObjects:[NSNumber numberWithInt:75],
[NSNumber numberWithInt:43],[NSNumber numberWithInt:103],
[NSNumber numberWithInt:87],[NSNumber numberWithInt:12],nil];
int teamScore = 0;

for (NSNumber *score in individualScores) {
if ([score integerValue] > 50) {
teamScore += 3;
} else {
teamScore +=1;
}
}

NSLog(@"%d",teamScore);

Assigning values to an array in Objective-C can become very tedious this is a clear example of what Swift is trying to improve.