1 #import <Foundation/Foundation.h> 2 #include <iostream> 3 4 @interface MyString : NSObject { 5 NSString *_string; 6 NSDate *_date; 7 } 8 - (id)initWithNSString:(NSString *)string; 9 10 @property (copy) NSString *string; 11 @property (readonly,getter=getTheDate) NSDate *date; 12 13 - (NSDate *) getTheDate; 14 @end 15 16 @implementation MyString 17 18 @synthesize string = _string; 19 @synthesize date = _date; 20 21 - (id)initWithNSString:(NSString *)string 22 { 23 if (self = [super init]) 24 { 25 _string = [NSString stringWithString:string]; 26 _date = [NSDate date]; 27 } 28 return self; 29 } 30 31 - (void) dealloc 32 { 33 [_date release]; 34 [_string release]; 35 [super dealloc]; 36 } 37 38 - (NSDate *) getTheDate 39 { 40 return _date; 41 } 42 43 - (NSString *)description 44 { 45 return [_string stringByAppendingFormat:@" with timestamp: %@", _date]; 46 } 47 @end 48 49 int main (int argc, char const *argv[]) 50 { 51 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 52 static NSString *g_global_nsstr = @"Howdy"; 53 54 MyString *myStr = [[MyString alloc] initWithNSString: [NSString stringWithFormat:@"string %i", 1]]; 55 NSString *str1 = myStr.string; 56 NSString *str2 = [NSString stringWithFormat:@"string %i", 2]; 57 NSString *str3 = [NSString stringWithFormat:@"string %i", 3]; 58 NSArray *array = [NSArray arrayWithObjects: str1, str2, str3, nil]; 59 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 60 str1, @"1", 61 str2, @"2", 62 str3, @"3", 63 myStr.date, @"date", 64 nil]; 65 66 id str_id = str1; 67 SEL sel = @selector(length); 68 [pool release]; 69 std::cout << "Hello, objc++!\n"; 70 return 0; 71 } 72