The power of binary operations.

The following code:

Selec All Code:
NSString *resolvedSource = oneResolved ? oneSource : otherSource;
if ([self projectSourceIsPortrait:resolvedSource]) {
    if (oneResolved) {
        oneTile.landscape.source = otherSource;
    } else {
        oneTile.portrait.source = otherSource;
    }
} else {
    if (oneResolved) {
        oneTile.portrait.source = otherSource;
    } else {
        oneTile.landscape.source = otherSource;
    }
}

can with proper use of binary operations turn into 8 lines (down from 14):

Selec All Code:
NSString *resolvedSource = oneResolved ? oneSource : otherSource;
BOOL setPortrait = oneResolved;
setPortrait ^= [self projectSourceIsPortrait:resolvedSource];
if (setPortrait) {
    oneTile.portrait.source = otherSource;
} else {
    oneTile.landscape.source = otherSource;
}

You can of course make the setPortrait bool a one-liner too, as in

Selec All Code:
BOOL setPortrait = oneResolved ^ [self projectSourceIsPortrait:resolvedSource];

dropping you down to 7 lines of code. The XOR operator is more useful than it’s being given credit for. :)

This entry was posted in General. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">