The Objective-C literal for an array is with square brackets,
NSArray *anArray = @[obj1, obj2]
.
In the code you posted it is trying to make a Dictionary,
NSDictionary *aDict = @{"key1" : obj1, @"key2" : obj2}
so this is why it is saying it expects a :
.
The line should read,
self.rowArray = @[
[[myClass alloc] initWithName:@"Harry" home:"New York" preference :Acura],
[[myClass alloc] initWithName:@"Win" home:"Seattle" preference :Toyota];
];
As others have pointed out the there are a few other errors with the code and those city names are not NSString's, but I guess this is just an example snippet.