| #import <Foundation/Foundation.h> |
| |
| #if defined(__APPLE__) |
| #if defined(__arm__) || defined(__arm64__) || defined(__aarch64__) |
| #define IOS |
| #endif |
| #endif |
| |
| #if defined(IOS) |
| #import <Foundation/NSGeometry.h> |
| #else |
| #import <Carbon/Carbon.h> |
| #endif |
| |
| @interface MyClass : NSObject { |
| int i; |
| char c; |
| float f; |
| } |
| |
| - (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z; |
| - (int)doIncrementByInt:(int)x; |
| |
| @end |
| |
| @interface MyOtherClass : MyClass { |
| int i2; |
| MyClass *backup; |
| } |
| - (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z andOtherInt:(int)q; |
| |
| @end |
| |
| @implementation MyClass |
| |
| - (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z { |
| self = [super init]; |
| if (self) { |
| self->i = x; |
| self->f = y; |
| self->c = z; |
| } |
| return self; |
| } |
| |
| - (int)doIncrementByInt:(int)x { |
| self->i += x; |
| return self->i; |
| } |
| |
| @end |
| |
| @implementation MyOtherClass |
| |
| - (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z andOtherInt:(int)q { |
| self = [super initWithInt:x andFloat:y andChar:z]; |
| if (self) { |
| self->i2 = q; |
| self->backup = [[MyClass alloc] initWithInt:x andFloat:y andChar:z]; |
| } |
| return self; |
| } |
| |
| @end |
| |
| @interface Atom : NSObject { |
| float mass; |
| } |
| - (void)setMass:(float)newMass; |
| - (float)mass; |
| @end |
| |
| @interface Molecule : NSObject { |
| NSArray *atoms; |
| } |
| - (void)setAtoms:(NSArray *)newAtoms; |
| - (NSArray *)atoms; |
| @end |
| |
| @implementation Atom |
| |
| - (void)setMass:(float)newMass { |
| mass = newMass; |
| } |
| - (float)mass { |
| return mass; |
| } |
| |
| @end |
| |
| @implementation Molecule |
| |
| - (void)setAtoms:(NSArray *)newAtoms { |
| atoms = newAtoms; |
| } |
| - (NSArray *)atoms { |
| return atoms; |
| } |
| @end |
| |
| @interface My_KVO_Observer : NSObject |
| - (void)observeValueForKeyPath:(NSString *)keyPath |
| ofObject:(id)object |
| change:(NSDictionary *)change |
| context:(void *)context; |
| - (id)init; |
| - (void)dealloc; |
| @end |
| |
| @implementation My_KVO_Observer |
| - (void)observeValueForKeyPath:(NSString *)keyPath |
| ofObject:(id)object |
| change:(NSDictionary *)change |
| context:(void *)context { |
| // we do not really care about KVO'ing - do nothing |
| return; |
| } |
| - (id)init { |
| self = [super init]; |
| return self; |
| } |
| |
| - (void)dealloc { |
| [super dealloc]; |
| } |
| @end |
| |
| int main(int argc, const char *argv[]) { |
| |
| NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |
| |
| MyClass *object = [[MyClass alloc] initWithInt:1 andFloat:3.14 andChar:'E']; |
| |
| [object doIncrementByInt:3]; |
| |
| MyOtherClass *object2 = [[MyOtherClass alloc] initWithInt:2 |
| andFloat:6.28 |
| andChar:'G' |
| andOtherInt:-1]; |
| |
| [object2 doIncrementByInt:3]; |
| |
| NSNumber *num1 = [NSNumber numberWithInt:5]; |
| NSNumber *num2 = [NSNumber numberWithFloat:3.14]; |
| NSNumber *num3 = [NSNumber numberWithDouble:3.14]; |
| NSNumber *num4 = [NSNumber numberWithUnsignedLongLong:0xFFFFFFFFFFFFFFFE]; |
| NSNumber *num5 = [NSNumber numberWithChar:'A']; |
| NSNumber *num6 = [NSNumber numberWithUnsignedLongLong:0xFF]; |
| NSNumber *num7 = [NSNumber numberWithLong:0x1E8480]; |
| NSNumber *num8_Y = [NSNumber numberWithBool:YES]; |
| NSNumber *num8_N = [NSNumber numberWithBool:NO]; |
| NSNumber *num9 = [NSNumber numberWithShort:0x1E8480]; |
| NSNumber *num_at1 = @12; |
| NSNumber *num_at2 = @-12; |
| NSNumber *num_at3 = @12.5; |
| NSNumber *num_at4 = @-12.5; |
| NSNumber *num_at5 = @'a'; |
| NSNumber *num_at6 = @42.123f; |
| NSNumber *num_at7 = @43.123; |
| NSNumber *num_at8 = @12345ll; |
| NSNumber *num_at9 = @0xF1234567890abcdeull; |
| NSNumber *num_at9b = @-1070935975400915746; |
| NSNumber *num_at10 = @YES; |
| NSNumber *num_at11 = @NO; |
| |
| NSDecimalNumber *decimal_number = |
| [NSDecimalNumber decimalNumberWithMantissa:123456 |
| exponent:-10 |
| isNegative:NO]; |
| NSDecimalNumber *decimal_number_neg = |
| [NSDecimalNumber decimalNumberWithMantissa:123456 |
| exponent:10 |
| isNegative:YES]; |
| NSDecimalNumber *decimal_one = [NSDecimalNumber one]; |
| NSDecimalNumber *decimal_zero = [NSDecimalNumber zero]; |
| NSDecimalNumber *decimal_nan = [NSDecimalNumber notANumber]; |
| |
| NSString *str0 = [num6 stringValue]; |
| |
| NSString *str1 = |
| [NSString stringWithCString:"A rather short ASCII NSString object is here" |
| encoding:NSASCIIStringEncoding]; |
| |
| NSString *str2 = [NSString |
| stringWithUTF8String:"A rather short UTF8 NSString object is here"]; |
| |
| NSString *str3 = @"A string made with the at sign is here"; |
| |
| NSString *str4 = [NSString |
| stringWithFormat:@"This is string number %ld right here", (long)4]; |
| |
| NSRect ns_rect_4str = {{1, 1}, {5, 5}}; |
| |
| NSString *str5 = NSStringFromRect(ns_rect_4str); |
| |
| NSString *str6 = [@"/usr/doc/README.1ST" pathExtension]; |
| |
| const unichar myCharacters[] = {0x03C3, 'x', 'x'}; |
| NSString *str7 = [NSString |
| stringWithCharacters:myCharacters |
| length:sizeof myCharacters / sizeof *myCharacters]; |
| |
| NSString *str8 = |
| [@"/usr/doc/" |
| @"file." |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTime" pathExtension]; |
| |
| const unichar myOtherCharacters[] = { |
| 'a', ' ', 'v', 'e', 'r', 'y', ' ', 'm', 'u', 'c', 'h', ' ', 'b', 'o', |
| 'r', 'i', 'n', 'g', ' ', 't', 'a', 's', 'k', ' ', 't', 'o', ' ', 'w', |
| 'r', 'i', 't', 'e', ' ', 'a', ' ', 's', 't', 'r', 'i', 'n', 'g', ' ', |
| 't', 'h', 'i', 's', ' ', 'w', 'a', 'y', '!', '!', 0x03C3, 0}; |
| NSString *str9 = [NSString stringWithCharacters:myOtherCharacters |
| length:sizeof myOtherCharacters / |
| sizeof *myOtherCharacters]; |
| |
| const unichar myNextCharacters[] = {0x03C3, 0x0000}; |
| |
| NSString *str10 = [NSString |
| stringWithFormat:@"This is a Unicode string %S number %ld right here", |
| myNextCharacters, (long)4]; |
| |
| NSString *str11 = NSStringFromClass([str10 class]); |
| |
| NSString *label1 = @"Process Name: "; |
| NSString *label2 = @"Process Id: "; |
| NSString *processName = [[NSProcessInfo processInfo] processName]; |
| NSString *processID = [NSString |
| stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]]; |
| NSString *str12 = [NSString |
| stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID]; |
| |
| NSString *strA1 = |
| [NSString stringWithCString:"A rather short ASCII NSString object is here" |
| encoding:NSASCIIStringEncoding]; |
| |
| NSString *strA2 = [NSString |
| stringWithUTF8String:"A rather short UTF8 NSString object is here"]; |
| |
| NSString *strA3 = @"A string made with the at sign is here"; |
| |
| NSString *strA4 = [NSString |
| stringWithFormat:@"This is string number %ld right here", (long)4]; |
| |
| NSString *strA5 = NSStringFromRect(ns_rect_4str); |
| |
| NSString *strA6 = [@"/usr/doc/README.1ST" pathExtension]; |
| |
| NSString *strA7 = [NSString |
| stringWithCharacters:myCharacters |
| length:sizeof myCharacters / sizeof *myCharacters]; |
| |
| NSString *strA8 = |
| [@"/usr/doc/" |
| @"file." |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTime" pathExtension]; |
| |
| NSString *strA9 = [NSString stringWithCharacters:myOtherCharacters |
| length:sizeof myOtherCharacters / |
| sizeof *myOtherCharacters]; |
| |
| NSString *strA10 = [NSString |
| stringWithFormat:@"This is a Unicode string %S number %ld right here", |
| myNextCharacters, (long)4]; |
| |
| NSString *strA11 = NSStringFromClass([str10 class]); |
| |
| NSString *strA12 = [NSString |
| stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID]; |
| |
| NSString *strB1 = |
| [NSString stringWithCString:"A rather short ASCII NSString object is here" |
| encoding:NSASCIIStringEncoding]; |
| |
| NSString *strB2 = [NSString |
| stringWithUTF8String:"A rather short UTF8 NSString object is here"]; |
| |
| NSString *strB3 = @"A string made with the at sign is here"; |
| |
| NSString *strB4 = [NSString |
| stringWithFormat:@"This is string number %ld right here", (long)4]; |
| |
| NSString *strB5 = NSStringFromRect(ns_rect_4str); |
| |
| NSString *strB6 = [@"/usr/doc/README.1ST" pathExtension]; |
| |
| NSString *strB7 = [NSString |
| stringWithCharacters:myCharacters |
| length:sizeof myCharacters / sizeof *myCharacters]; |
| |
| NSString *strB8 = |
| [@"/usr/doc/" |
| @"file." |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTime" pathExtension]; |
| |
| NSString *strB9 = [NSString stringWithCharacters:myOtherCharacters |
| length:sizeof myOtherCharacters / |
| sizeof *myOtherCharacters]; |
| |
| NSString *strB10 = [NSString |
| stringWithFormat:@"This is a Unicode string %S number %ld right here", |
| myNextCharacters, (long)4]; |
| |
| NSString *strB11 = NSStringFromClass([str10 class]); |
| |
| NSString *strB12 = [NSString |
| stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID]; |
| |
| NSString *strC11 = NSStringFromClass([str10 class]); |
| |
| NSString *strC12 = [NSString |
| stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID]; |
| |
| NSString *strC1 = |
| [NSString stringWithCString:"A rather short ASCII NSString object is here" |
| encoding:NSASCIIStringEncoding]; |
| |
| NSString *strC2 = [NSString |
| stringWithUTF8String:"A rather short UTF8 NSString object is here"]; |
| |
| NSString *strC3 = @"A string made with the at sign is here"; |
| |
| NSString *strC4 = [NSString |
| stringWithFormat:@"This is string number %ld right here", (long)4]; |
| |
| NSString *strC5 = NSStringFromRect(ns_rect_4str); |
| |
| NSString *strC6 = [@"/usr/doc/README.1ST" pathExtension]; |
| |
| NSString *strC7 = [NSString |
| stringWithCharacters:myCharacters |
| length:sizeof myCharacters / sizeof *myCharacters]; |
| |
| NSString *strC8 = |
| [@"/usr/doc/" |
| @"file." |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime" |
| @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt" |
| @"ensionThisTime" pathExtension]; |
| |
| NSString *strC9 = [NSString stringWithCharacters:myOtherCharacters |
| length:sizeof myOtherCharacters / |
| sizeof *myOtherCharacters]; |
| |
| NSString *strC10 = [NSString |
| stringWithFormat:@"This is a Unicode string %S number %ld right here", |
| myNextCharacters, (long)4]; |
| |
| NSString *strD11 = NSStringFromClass([str10 class]); |
| |
| NSString *strD12 = [NSString |
| stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID]; |
| |
| NSString *eAcute = [NSString stringWithFormat:@"%C", 0x00E9]; |
| NSString *randomHaziChar = [NSString stringWithFormat:@"%C", 0x9DC5]; |
| NSString *japanese = @"色は匂へど散りぬるを"; |
| NSString *italian = @"L'Italia è una Repubblica democratica, fondata sul " |
| @"lavoro. La sovranità appartiene al popolo, che la " |
| @"esercita nelle forme e nei limiti della Costituzione."; |
| NSString *french = |
| @"Que veut cette horde d'esclaves, De traîtres, de rois conjurés?"; |
| NSString *german = @"Über-Ich und aus den Ansprüchen der sozialen Umwelt"; |
| |
| void *data_set[3] = {str1, str2, str3}; |
| |
| NSString *hebrew = [NSString stringWithString:@"לילה טוב"]; |
| |
| NSArray *newArray = [[NSMutableArray alloc] init]; |
| [newArray addObject:str1]; |
| [newArray addObject:str2]; |
| [newArray addObject:str3]; |
| [newArray addObject:str4]; |
| [newArray addObject:str5]; |
| [newArray addObject:str6]; |
| [newArray addObject:str7]; |
| [newArray addObject:str8]; |
| [newArray addObject:str9]; |
| [newArray addObject:str10]; |
| [newArray addObject:str11]; |
| [newArray addObject:str12]; |
| [newArray addObject:strA1]; |
| [newArray addObject:strA2]; |
| [newArray addObject:strA3]; |
| [newArray addObject:strA4]; |
| [newArray addObject:strA5]; |
| [newArray addObject:strA6]; |
| [newArray addObject:strA7]; |
| [newArray addObject:strA8]; |
| [newArray addObject:strA9]; |
| [newArray addObject:strA10]; |
| [newArray addObject:strA11]; |
| [newArray addObject:strA12]; |
| [newArray addObject:strB1]; |
| [newArray addObject:strB2]; |
| [newArray addObject:strB3]; |
| [newArray addObject:strB4]; |
| [newArray addObject:strB5]; |
| [newArray addObject:strB6]; |
| [newArray addObject:strB7]; |
| [newArray addObject:strB8]; |
| [newArray addObject:strB9]; |
| [newArray addObject:strB10]; |
| [newArray addObject:strB11]; |
| [newArray addObject:strB12]; |
| [newArray addObject:strC1]; |
| [newArray addObject:strC2]; |
| [newArray addObject:strC3]; |
| [newArray addObject:strC4]; |
| [newArray addObject:strC5]; |
| [newArray addObject:strC6]; |
| [newArray addObject:strC7]; |
| [newArray addObject:strC8]; |
| [newArray addObject:strC9]; |
| [newArray addObject:strC10]; |
| [newArray addObject:strC11]; |
| [newArray addObject:strC12]; |
| [newArray addObject:strD11]; |
| [newArray addObject:strD12]; |
| |
| NSDictionary *newDictionary = [[NSDictionary alloc] initWithObjects:newArray |
| forKeys:newArray]; |
| NSDictionary *newMutableDictionary = [[NSMutableDictionary alloc] init]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar0"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar1"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar2"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar3"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar4"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar5"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar6"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar7"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar8"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar9"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar10"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar11"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar12"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar13"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar14"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar15"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar16"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar17"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar18"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar19"]; |
| [newMutableDictionary setObject:@"foo" forKey:@"bar20"]; |
| |
| /* Copying an NSMutableDictionary makes a different member of the |
| class cluster, so let's also make a copy of this one: */ |
| NSMutableDictionary *copyDictionary = [newMutableDictionary copy]; |
| |
| CFMutableDictionaryRef newMutableDictionaryRef = CFDictionaryCreateMutableCopy(kCFAllocatorDefault, 0, newMutableDictionary); |
| |
| id cfKeys[4] = {@"foo", @"bar", @"baz", @"quux"}; |
| id cfValues[4] = {@"foo", @"bar", @"baz", @"quux"}; |
| NSDictionary *nsDictionary = CFBridgingRelease( |
| CFDictionaryCreate(nil, (void *)cfKeys, (void *)cfValues, 2, nil, nil)); |
| NSDictionary *nscfDictionary = CFBridgingRelease( |
| CFDictionaryCreate(nil, (void *)cfKeys, (void *)cfValues, 4, nil, nil)); |
| CFDictionaryRef cfDictionaryRef = (__bridge CFDictionaryRef)nsDictionary; |
| |
| NSAttributedString *attrString = |
| [[NSAttributedString alloc] initWithString:@"hello world from foo" |
| attributes:newDictionary]; |
| [attrString isEqual:nil]; |
| NSAttributedString *mutableAttrString = |
| [[NSMutableAttributedString alloc] initWithString:@"hello world from foo" |
| attributes:newDictionary]; |
| [mutableAttrString isEqual:nil]; |
| |
| NSString *mutableString = [[NSMutableString alloc] initWithString:@"foo"]; |
| [mutableString |
| insertString: |
| @"foo said this string needs to be very long so much longer than " |
| @"whatever other string has been seen ever before by anyone of the " |
| @"mankind that of course this is still not long enough given what " |
| @"foo our friend foo our lovely dearly friend foo desired of us so i " |
| @"am adding more stuff here for the sake of it and for the joy of " |
| @"our friend who is named guess what just foo. hence, dear friend " |
| @"foo, stay safe, your string is now long enough to accommodate " |
| @"your testing need and I will make sure that if not we extend it " |
| @"with even more fuzzy random meaningless words pasted one after the " |
| @"other from a long tiresome friday evening spent working in my " |
| @"office. my office mate went home but I am still randomly typing " |
| @"just for the fun of seeing what happens of the length of a Mutable " |
| @"String in Cocoa if it goes beyond one byte.. so be it, dear " |
| atIndex:0]; |
| |
| NSString *mutableGetConst = |
| [NSString stringWithCString:[mutableString cString]]; |
| |
| [mutableGetConst length]; |
| |
| NSData *immutableData = [[NSData alloc] initWithBytes:"HELLO" length:5]; |
| NSData *mutableData = [[NSMutableData alloc] initWithBytes:"NODATA" length:6]; |
| |
| // No-copy versions of NSData initializers use NSConcreteData if over 2^16 |
| // elements are specified. |
| unsigned concreteLength = 100000; |
| void *zeroes1 = calloc(1, concreteLength); |
| // initWithBytesNoCopy takes ownership of the buffer. |
| NSData *concreteData = [[NSData alloc] initWithBytesNoCopy:zeroes1 |
| length:concreteLength]; |
| void *zeroes2 = calloc(1, concreteLength); |
| NSMutableData *concreteMutableData = |
| [[NSMutableData alloc] initWithBytesNoCopy:zeroes2 length:concreteLength]; |
| |
| [mutableData appendBytes:"MOREDATA" length:8]; |
| |
| [immutableData length]; |
| [mutableData length]; |
| |
| NSSet *nsset = [[NSSet alloc] initWithObjects:str1, str2, str3, nil]; |
| NSSet *nsmutableset = |
| [[NSMutableSet alloc] initWithObjects:str1, str2, str3, nil]; |
| [nsmutableset addObject:str4]; |
| NSSet *nscfSet = |
| CFBridgingRelease(CFSetCreate(nil, (void *)cfValues, 2, nil)); |
| CFSetRef cfSetRef = (__bridge CFSetRef)nscfSet; |
| |
| CFDataRef data_ref = |
| CFDataCreate(kCFAllocatorDefault, [immutableData bytes], 5); |
| |
| CFMutableDataRef mutable_data_ref = |
| CFDataCreateMutable(kCFAllocatorDefault, 8); |
| CFDataAppendBytes(mutable_data_ref, [mutableData bytes], 5); |
| |
| CFMutableStringRef mutable_string_ref = CFStringCreateMutable(NULL, 100); |
| CFStringAppend(mutable_string_ref, CFSTR("Wish ya knew")); |
| |
| CFStringRef cfstring_ref = CFSTR("HELLO WORLD"); |
| |
| CFArrayRef cfarray_ref = CFArrayCreate(NULL, data_set, 3, NULL); |
| CFMutableArrayRef mutable_array_ref = CFArrayCreateMutable(NULL, 16, NULL); |
| |
| CFArraySetValueAtIndex(mutable_array_ref, 0, str1); |
| CFArraySetValueAtIndex(mutable_array_ref, 1, str2); |
| CFArraySetValueAtIndex(mutable_array_ref, 2, str3); |
| CFArraySetValueAtIndex(mutable_array_ref, 3, str4); |
| CFArraySetValueAtIndex(mutable_array_ref, 0, str5); // replacing value at 0!! |
| CFArraySetValueAtIndex(mutable_array_ref, 4, str6); |
| CFArraySetValueAtIndex(mutable_array_ref, 5, str7); |
| CFArraySetValueAtIndex(mutable_array_ref, 6, str8); |
| CFArraySetValueAtIndex(mutable_array_ref, 7, str9); |
| CFArraySetValueAtIndex(mutable_array_ref, 8, str10); |
| CFArraySetValueAtIndex(mutable_array_ref, 9, str11); |
| CFArraySetValueAtIndex(mutable_array_ref, 10, str12); |
| |
| CFBinaryHeapRef binheap_ref = |
| CFBinaryHeapCreate(NULL, 15, &kCFStringBinaryHeapCallBacks, NULL); |
| CFBinaryHeapAddValue(binheap_ref, str1); |
| CFBinaryHeapAddValue(binheap_ref, str2); |
| CFBinaryHeapAddValue(binheap_ref, str3); |
| CFBinaryHeapAddValue(binheap_ref, str4); |
| CFBinaryHeapAddValue(binheap_ref, str5); |
| CFBinaryHeapAddValue(binheap_ref, str6); |
| CFBinaryHeapAddValue(binheap_ref, str7); |
| CFBinaryHeapAddValue(binheap_ref, str8); |
| CFBinaryHeapAddValue(binheap_ref, str9); |
| CFBinaryHeapAddValue(binheap_ref, str10); |
| CFBinaryHeapAddValue(binheap_ref, str11); |
| CFBinaryHeapAddValue(binheap_ref, str12); |
| CFBinaryHeapAddValue(binheap_ref, strA1); |
| CFBinaryHeapAddValue(binheap_ref, strB1); |
| CFBinaryHeapAddValue(binheap_ref, strC1); |
| CFBinaryHeapAddValue(binheap_ref, strA11); |
| CFBinaryHeapAddValue(binheap_ref, strB11); |
| CFBinaryHeapAddValue(binheap_ref, strC11); |
| CFBinaryHeapAddValue(binheap_ref, strB12); |
| CFBinaryHeapAddValue(binheap_ref, strC12); |
| CFBinaryHeapAddValue(binheap_ref, strA12); |
| |
| CFURLRef cfurl_ref = |
| CFURLCreateWithString(NULL, CFSTR("http://www.foo.bar/"), NULL); |
| CFURLRef cfchildurl_ref = |
| CFURLCreateWithString(NULL, CFSTR("page.html"), cfurl_ref); |
| CFURLRef cfgchildurl_ref = |
| CFURLCreateWithString(NULL, CFSTR("?whatever"), cfchildurl_ref); |
| |
| NSDictionary *error_userInfo = @{@"a" : @1, @"b" : @2}; |
| NSError *nserror = [[NSError alloc] initWithDomain:@"Foobar" |
| code:12 |
| userInfo:error_userInfo]; |
| NSError **nserrorptr = &nserror; |
| |
| NSBundle *bundle_string = [[NSBundle alloc] |
| initWithPath:@"/System/Library/Frameworks/Accelerate.framework"]; |
| NSBundle *bundle_url = [[NSBundle alloc] |
| initWithURL:[[NSURL alloc] |
| initWithString:@"file://localhost/System/Library/" |
| @"Frameworks/Foundation.framework"]]; |
| |
| NSBundle *main_bundle = [NSBundle mainBundle]; |
| |
| NSArray *bundles = [NSBundle allBundles]; |
| |
| NSURL *nsurl0; |
| |
| for (NSBundle *bundle in bundles) { |
| nsurl0 = [bundle bundleURL]; |
| } |
| |
| NSException *except0 = [[NSException alloc] initWithName:@"TheGuyWhoHasNoName" |
| reason:@"First" |
| userInfo:nil]; |
| NSException *except1 = |
| [[NSException alloc] initWithName:@"TheGuyWhoHasNoName~1" |
| reason:@"Second" |
| userInfo:nil]; |
| NSException *except2 = |
| [[NSException alloc] initWithName:@"TheGuyWhoHasNoName`2" |
| reason:@"Third" |
| userInfo:nil]; |
| NSException *except3 = |
| [[NSException alloc] initWithName:@"TheGuyWhoHasNoName/3" |
| reason:@"Fourth" |
| userInfo:nil]; |
| |
| NSURL *nsurl = [[NSURL alloc] initWithString:@"http://www.foo.bar"]; |
| NSURL *nsurl2 = [NSURL URLWithString:@"page.html" relativeToURL:nsurl]; |
| NSURL *nsurl3 = [NSURL URLWithString:@"?whatever" relativeToURL:nsurl2]; |
| |
| NSDate *date1 = [NSDate |
| dateWithTimeIntervalSince1970:133890 * 60 * 60]; // 6pm April 10, 1985 GMT |
| NSDate *date2 = |
| [NSDate dateWithNaturalLanguageString:@"12am January 1, 2011"]; |
| NSDate *date3 = [NSDate date]; |
| NSDate *date4 = [NSDate dateWithTimeIntervalSince1970:24 * 60 * 60]; |
| NSDate *date5 = |
| [NSDate dateWithTimeIntervalSinceReferenceDate: |
| floor([[NSDate date] timeIntervalSinceReferenceDate])]; |
| |
| NSDate *date_1970_minus_06 = [NSDate dateWithTimeIntervalSince1970:-0.6]; |
| NSDate *date_1970_minus_05 = [NSDate dateWithTimeIntervalSince1970:-0.5]; |
| NSDate *date_1970_minus_04 = [NSDate dateWithTimeIntervalSince1970:-0.4]; |
| |
| NSDate *date_1970_plus_06 = [NSDate dateWithTimeIntervalSince1970:0.6]; |
| NSDate *date_1970_plus_05 = [NSDate dateWithTimeIntervalSince1970:0.5]; |
| NSDate *date_1970_plus_04 = [NSDate dateWithTimeIntervalSince1970:0.4]; |
| |
| NSDate *distant_past = [NSDate distantPast]; |
| NSDate *distant_future = [NSDate distantFuture]; |
| |
| CFAbsoluteTime date1_abs = CFDateGetAbsoluteTime(date1); |
| CFAbsoluteTime date2_abs = CFDateGetAbsoluteTime(date2); |
| CFAbsoluteTime date3_abs = CFDateGetAbsoluteTime(date3); |
| CFAbsoluteTime date4_abs = CFDateGetAbsoluteTime(date4); |
| CFAbsoluteTime date5_abs = CFDateGetAbsoluteTime(date5); |
| |
| NSIndexSet *iset1 = |
| [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 4)]; |
| NSIndexSet *iset2 = |
| [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 512)]; |
| |
| NSMutableIndexSet *imset = [[NSMutableIndexSet alloc] init]; |
| [imset addIndex:1936]; |
| [imset addIndex:7]; |
| [imset addIndex:9]; |
| [imset addIndex:11]; |
| [imset addIndex:24]; |
| [imset addIndex:41]; |
| [imset addIndex:58]; |
| [imset addIndex:61]; |
| [imset addIndex:62]; |
| [imset addIndex:63]; |
| |
| CFTimeZoneRef cupertino = CFTimeZoneCreateWithName(NULL, CFSTR("PST"), YES); |
| CFTimeZoneRef home = |
| CFTimeZoneCreateWithName(NULL, CFSTR("Europe/Rome"), YES); |
| CFTimeZoneRef europe = CFTimeZoneCreateWithName(NULL, CFSTR("CET"), YES); |
| |
| NSTimeZone *cupertino_ns = [NSTimeZone timeZoneWithAbbreviation:@"PST"]; |
| NSTimeZone *home_ns = [NSTimeZone timeZoneWithName:@"Europe/Rome"]; |
| NSTimeZone *europe_ns = [NSTimeZone timeZoneWithAbbreviation:@"CET"]; |
| |
| CFGregorianUnits cf_greg_units = {1, 3, 5, 12, 5, 7}; |
| CFGregorianDate cf_greg_date = |
| CFAbsoluteTimeGetGregorianDate(CFDateGetAbsoluteTime(date1), NULL); |
| CFRange cf_range = {4, 4}; |
| NSPoint ns_point = {4, 4}; |
| NSRange ns_range = {4, 4}; |
| |
| NSRect ns_rect = {{1, 1}, {5, 5}}; |
| NSRect *ns_rect_ptr = &ns_rect; |
| NSRectArray ns_rect_arr = &ns_rect; |
| NSSize ns_size = {5, 7}; |
| NSSize *ns_size_ptr = &ns_size; |
| |
| CGSize cg_size = {1, 6}; |
| CGPoint cg_point = {2, 7}; |
| CGRect cg_rect = {{1, 2}, {7, 7}}; |
| |
| #ifndef IOS |
| RGBColor rgb_color = {3, 56, 35}; |
| RGBColor *rgb_color_ptr = &rgb_color; |
| #endif |
| |
| Rect rect = {4, 8, 4, 7}; |
| Rect *rect_ptr = ▭ |
| |
| Point point = {7, 12}; |
| Point *point_ptr = &point; |
| |
| #ifndef IOS |
| HIPoint hi_point = {7, 12}; |
| HIRect hi_rect = {{3, 5}, {4, 6}}; |
| #endif |
| |
| SEL foo_selector = @selector(foo_selector_impl); |
| |
| CFMutableBitVectorRef mut_bv = CFBitVectorCreateMutable(NULL, 64); |
| CFBitVectorSetCount(mut_bv, 50); |
| CFBitVectorSetBitAtIndex(mut_bv, 0, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 1, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 2, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 5, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 6, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 8, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 10, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 11, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 16, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 17, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 19, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 20, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 22, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 24, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 28, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 29, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 30, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 30, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 31, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 34, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 35, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 37, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 39, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 40, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 41, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 43, 1); |
| CFBitVectorSetBitAtIndex(mut_bv, 47, 1); |
| |
| Molecule *molecule = [Molecule new]; |
| |
| Class myclass = NSClassFromString(@"NSValue"); |
| Class myclass2 = [str0 class]; |
| Class myclass3 = [molecule class]; |
| Class myclass4 = NSClassFromString(@"NSMutableArray"); |
| Class myclass5 = [nil class]; |
| |
| NSArray *components = @[ @"usr", @"blah", @"stuff" ]; |
| NSString *path = [NSString pathWithComponents:components]; |
| |
| [molecule addObserver:[My_KVO_Observer new] |
| forKeyPath:@"atoms" |
| options:0 |
| context:NULL]; // Set break point at this line. |
| [newMutableDictionary addObserver:[My_KVO_Observer new] |
| forKeyPath:@"weirdKeyToKVO" |
| options:NSKeyValueObservingOptionNew |
| context:NULL]; |
| |
| [molecule setAtoms:nil]; |
| [molecule setAtoms:[NSMutableArray new]]; |
| |
| [pool drain]; |
| return 0; |
| } |