This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define screenHeight() ([UIScreen mainScreen].bounds.size.height) | |
#define isPhoneFive() (screenHeight() == 568) | |
#define isOS6() ([[[UIDevice currentDevice] systemVersion]intValue] > 5.2) | |
#define UIInterfaceIdiomIsPad() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) | |
#define UIColorFromRGB(rgbValue) [UIColor \ | |
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// MyOperation.h | |
@interface MyOperation : NSOperation | |
@end | |
// MyOperation.m | |
@implementation MyOperation | |
- (void)main { | |
if ([self isCancelled]) { | |
NSLog(@"** operation cancelled **"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (void)attachMetadata | |
{ | |
DLog(@"EXIF data is %@",self.exifData); | |
[self.exifData setObject:@1 forKey:@"Orientation"]; | |
NSData *jpeg = UIImageJPEGRepresentation(self.image, 1); | |
CGImageSourceRef sourceRef = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL); | |
NSMutableData *dest_data = [NSMutableData data]; | |
CFStringRef UTI = CGImageSourceGetType(sourceRef); | |
CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)dest_data,UTI,1,NULL); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+ (NSDate *)dateFromRFC3339String:(NSString *)dateString | |
{ | |
NSDate *date = nil; | |
if (dateString) { | |
NSDateFormatter *dateFormatter = [self internetDateTimeFormatter]; | |
NSString *RFC3339String = [[NSString stringWithString:dateString] uppercaseString]; | |
RFC3339String = [RFC3339String stringByReplacingOccurrencesOfString:@"Z" withString:@"-0000"]; | |
if (RFC3339String.length > 20) { | |
RFC3339String = [RFC3339String stringByReplacingOccurrencesOfString:@":" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (NSArray *)lastWordOfEachLine | |
{ | |
NSMutableArray *wordArray = [@[] mutableCopy]; | |
UITextPosition *firstRowStart = self.myTextView.beginningOfDocument; | |
UITextPosition *rowEnd = [self.myTextView.tokenizer positionFromPosition:firstRowStart | |
toBoundary:UITextGranularityLine | |
inDirection:UITextLayoutDirectionRight]; | |
BOOL done = NO; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
UITextPosition *firstRowStart = self.myTextView.beginningOfDocument; | |
UITextPosition *firstRowEnd = [self.myTextView.tokenizer positionFromPosition:firstRowStart | |
toBoundary:UITextGranularityLine | |
inDirection:UITextLayoutDirectionRight]; | |
NSString *lastWord = nil; | |
while (!lastWord) { | |
UITextRange *range = [self.myTextView.tokenizer rangeEnclosingPosition:firstRowEnd | |
withGranularity:UITextGranularityWord |
NewerOlder