| z, ? | toggle help (this) |
| space, → | next slide |
| shift-space, ← | previous slide |
| d | toggle debug mode |
| ## <ret> | go to slide # |
| c, t | table of contents (vi) |
| f | toggle footer |
| r | reload slides |
| n | toggle notes |
| p | run preshow |
@interface MyObject : NSObject
@end
@interface MyObject : NSObject {
@private
NSUInteger count
MySubObject* subObject;
}
@end
@interface MyObject : NSObject {
@private
NSUInteger _count;
MySubObject* _subObject;
}
+ (Counter*) counter;
- (void) increment;
- (MySubObject*) subObject;
- (void) setSubObject:(MySubObject*)subObject;
@end
@implementation MyObject
...
- (MySubObject*) subObject {
return _subObject;
}
- (void) setSubObject:(MySubObject*)subObject {
_subObject = [subObject retain];
}
...
@interface MyObject : NSObject {
@private
NSUInteger count;
MySubObject* subObject;
}
+ (Counter*) myObject;
- (void) increment;
@property (nonatomic,retain) subObject;
@end
myObject.subObject;
myObject.subObject = aSubObject;
@implementation MyObject
...
- (MySubObject*) subObject {
return _subObject;
}
- (void) setSubObject:(MySubObject*)subObject {
_subObject = [subObject retain];
}
...
@implementation MyObject
@synthesize subObject = _subObject;
...
@end
@interface MyObject : NSObject {
NSUInteger count;
}
...
@property (nonatomic,retain) subObject;
@end
@interface NSDate (Helpers)
- (NSString*) timeAgoInWords;
@end
@implementation NSDate (Helpers)
- (NSString *)timeAgoInWords {
double ti = [self timeIntervalSinceNow];
ti = ti * -1;
if(ti < 1) {
return @"never";
} else if (ti < 60) {
return @"less than a minute ago";
} else if (ti < 3600) {
int diff = round(ti / 60);
return [NSString stringWithFormat:@"%d minutes ago", diff];
} else if (ti < 86400) {
int diff = round(ti / 60 / 60);
return[NSString stringWithFormat:@"%d hours ago", diff];
} else if (ti < 2629743) {
int diff = round(ti / 60 / 60 / 24);
return[NSString stringWithFormat:@"%d days ago", diff];
} else {
return @"never";
}
}
@end
@interface UIViewController (Pager)
@property (nonatomic,retain)
PagerController* pagerController;
@property (nonatomic,retain)
ScrollTabBarItem* scrollTabBarItem;
@end
@implementation UIViewController (Pager)
@synthesize pagerController;
@synthesize scrollTabBarItem;
@end
@implementation UIViewController (Pager)
static char pagerControllerKey;
static char scrollTabBarItemKey;
- (PagerController *)pagerController
{
return (PagerController*)
objc_getAssociatedObject(self,
&pagerControllerKey);
}
- (void)setPagerController:
(PagerController *)pagerController
{
objc_setAssociatedObject(self,
&pagerControllerKey,
pagerController,
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (ScrollTabBarItem *)scrollTabBarItem
{
return (ScrollTabBarItem*)
objc_getAssociatedObject(self,
&scrollTabBarItemKey);
}
- (void)setScrollTabBarItem:(ScrollTabBarItem *)scrollTabBarItem
{
objc_setAssociatedObject(self,
&scrollTabBarItemKey, scrollTabBarItem,
OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end