Pre-ARC, this was how you set values to your properties to avoid memory leaks:
NSDictionary *tempDict = [[NSDictionary alloc]init];
self.dictionary = tempDict;
[tempDict release];
But now with arc, do we still need to use the 2 line style, or can we just use a single line setter?
self.dictionary = [[NSDictionary alloc]init];
versus
NSDictionary *tempDict = [[NSDictionary alloc]init];
self.dictionary = tempDict;
Also, in general iOS dev, is it safe to just use properties most of the time, no more using the instance variables directly?
You can use the single-line style.
Perhaps I don’t know what you mean by “safe”. Under ARC you can be sure that objects will be properly retained and released whether you use properties, instance variables, or a mixture.
Without ARC, it’s usually safer (as in, less prone to human error) to always use property setters to ensure that objects are correctly retained and released.