Club 15CC

Cocoa ~ 15CC Code

Task Code
iOS NSDate Comparisons and Maths »
// dateA < dateB
if ([dateA compare:dateB] == NSOrderedAscending) { ... }

// dateA > dateB
if ([dateA compare:dateB] == NSOrderedDescending) { ... }

// dateA == dateB
if ([dateA compare:dateB] == NSOrderedSame) { ... }

// dateA <= dateB
if ([dateA compare:dateB] != NSOrderedDescending) { ... }

// dateA >= dateB
if ([dateA compare:dateB] != NSOrderedAscending) { ... }

// dateA is before NOW
if ([dateA compare:[NSDate date]] == NSOrderedAscending) { ... }

// Time lapsed (positive) since dateA in the past and NOW.
NSTimeInterval timeLapsed = -1 * [dateA timeIntervalSinceNow];
iOS Create your own NSNotification paradigm for passing specifically typed data »
//
// IMMotionUpdateNotification.h
//

#import
#import "IMMotionData.h"

/**
 Create superclass to strict type the object delivered
 */
@interface IMMotionUpdateNotification : NSNotification
- (IMMotionData *)object;  //< Our payload.

@end

/**
 Following NSNotifications header file...
 */
@interface IMMotionUpdateNotification (NSNotificationCreation)

+ (IMMotionUpdateNotification *)notificationWithName:(NSString *)aName object:(IMMotionData *)anObject;
+ (IMMotionUpdateNotification *)notificationWithName:(NSString *)aName object:(IMMotionData *)anObject userInfo:(NSDictionary *)aUserInfo;

@end

//
// IMMotionUpdateNotification.m
//
#import "IMMotionUpdateNotification.h"

@implementation IMMotionUpdateNotification

- (IMMotionData *)object
{
    return [super object];
}
@end

@implementation IMMotionUpdateNotification (NSNotificationCreation)

+ (IMMotionUpdateNotification *)notificationWithName:(NSString *)aName object:(IMMotionData *)anObject
{
    return [[self superclass] notificationWithName:aName object:anObject];
}
+ (IMMotionUpdateNotification *)notificationWithName:(NSString *)aName object:(IMMotionData *)anObject userInfo:(NSDictionary *)aUserInfo
{
    return [[self superclass] notificationWithName:aName object:anObject userInfo:aUserInfo];
}
@end

//
// IMMotionUpdateNotification.h
//
#import
#import "IMMotionData.h"
/**
 Create superclass to strict type the object delivered
 */
@interface IMMotionUpdateNotification : NSNotification
- (IMMotionData *)object;  //< Our payload.

@end

//
// IMMotionUpdateNotification.m
//
#import "IMMotionUpdateNotification.h"
@implementation IMMotionUpdateNotification

- (IMMotionData *)object
{
    return [super object];
}
@end

//
// Usage
//
[IMMotionUpdateNotification notificationWithName:@"IMDidUpdateMotionData" object:[latestMotionData copy]];
iOS Common Cocoa Exceptions List »
FOUNDATION_EXPORT NSString * const NSGenericException;
FOUNDATION_EXPORT NSString * const NSRangeException;
FOUNDATION_EXPORT NSString * const NSInvalidArgumentException;
FOUNDATION_EXPORT NSString * const NSInternalInconsistencyException;

FOUNDATION_EXPORT NSString * const NSMallocException;

FOUNDATION_EXPORT NSString * const NSObjectInaccessibleException;
FOUNDATION_EXPORT NSString * const NSObjectNotAvailableException;
FOUNDATION_EXPORT NSString * const NSDestinationInvalidException;

FOUNDATION_EXPORT NSString * const NSPortTimeoutException;
FOUNDATION_EXPORT NSString * const NSInvalidSendPortException;
FOUNDATION_EXPORT NSString * const NSInvalidReceivePortException;
FOUNDATION_EXPORT NSString * const NSPortSendException;
FOUNDATION_EXPORT NSString * const NSPortReceiveException;

FOUNDATION_EXPORT NSString * const NSOldStyleException;