UIImage *image = (self.backgroundImage) ? self.backgroundImage : [UIImage imageNamed:@"default"];
My question is: is there an even more short-hand way to accomplish this?
Yes; just omit the middle term:
UIImage *image = self.backgroundImage ? : [UIImage imageNamed:@"default"];
Documented here.
And in Swift there is now the ??
operator which does just what the ?:
operator does in Objective-C.