|
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; |