| #import <Foundation/Foundation.h> | |
| @interface MyString : NSObject { | |
| NSString *_string; | |
| NSDate *_date; | |
| } | |
| - (id)initWithNSString:(NSString *)string; | |
| @property (copy) NSString *string; | |
| @property (readonly,getter=getTheDate) NSDate *date; | |
| - (NSDate *) getTheDate; | |
| @end | |
| @implementation MyString | |
| @synthesize string = _string; | |
| @synthesize date = _date; | |
| - (id)initWithNSString:(NSString *)string | |
| { | |
| if (self = [super init]) | |
| { | |
| _string = [NSString stringWithString:string]; | |
| _date = [NSDate date]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc | |
| { | |
| [_date release]; | |
| [_string release]; | |
| [super dealloc]; | |
| } | |
| - (NSDate *) getTheDate | |
| { | |
| return _date; | |
| } | |
| - (NSString *)description | |
| { | |
| return [_string stringByAppendingFormat:@" with timestamp: %@", _date]; | |
| } | |
| @end | |
| int main (int argc, char const *argv[]) | |
| { | |
| NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; | |
| static NSString *g_global_nsstr = @"Howdy"; | |
| MyString *myStr = [[MyString alloc] initWithNSString: [NSString stringWithFormat:@"string %i", 1]]; | |
| NSString *str1 = myStr.string; | |
| NSString *str2 = [NSString stringWithFormat:@"string %i", 2]; | |
| NSString *str3 = [NSString stringWithFormat:@"string %i", 3]; | |
| NSArray *array = [NSArray arrayWithObjects: str1, str2, str3, nil]; | |
| NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: | |
| str1, @"1", | |
| str2, @"2", | |
| str3, @"3", | |
| myStr.date, @"date", | |
| nil]; | |
| id str_id = str1; | |
| SEL sel = @selector(length); | |
| [pool release]; | |
| return 0; | |
| } |