806 lines · plain
1#import <Foundation/Foundation.h>2 3#if defined(__APPLE__)4#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)5#define IOS6#endif7#endif8 9#if defined(IOS)10#import <Foundation/NSGeometry.h>11#else12#import <Carbon/Carbon.h>13#endif14 15@interface MyClass : NSObject {16 int i;17 char c;18 float f;19}20 21- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z;22- (int)doIncrementByInt:(int)x;23 24@end25 26@interface MyOtherClass : MyClass {27 int i2;28 MyClass *backup;29}30- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z andOtherInt:(int)q;31 32@end33 34@implementation MyClass35 36- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z {37 self = [super init];38 if (self) {39 self->i = x;40 self->f = y;41 self->c = z;42 }43 return self;44}45 46- (int)doIncrementByInt:(int)x {47 self->i += x;48 return self->i;49}50 51@end52 53@implementation MyOtherClass54 55- (id)initWithInt:(int)x andFloat:(float)y andChar:(char)z andOtherInt:(int)q {56 self = [super initWithInt:x andFloat:y andChar:z];57 if (self) {58 self->i2 = q;59 self->backup = [[MyClass alloc] initWithInt:x andFloat:y andChar:z];60 }61 return self;62}63 64@end65 66@interface Atom : NSObject {67 float mass;68}69- (void)setMass:(float)newMass;70- (float)mass;71@end72 73@interface Molecule : NSObject {74 NSArray *atoms;75}76- (void)setAtoms:(NSArray *)newAtoms;77- (NSArray *)atoms;78@end79 80@implementation Atom81 82- (void)setMass:(float)newMass {83 mass = newMass;84}85- (float)mass {86 return mass;87}88 89@end90 91@implementation Molecule92 93- (void)setAtoms:(NSArray *)newAtoms {94 atoms = newAtoms;95}96- (NSArray *)atoms {97 return atoms;98}99@end100 101@interface My_KVO_Observer : NSObject102- (void)observeValueForKeyPath:(NSString *)keyPath103 ofObject:(id)object104 change:(NSDictionary *)change105 context:(void *)context;106- (id)init;107- (void)dealloc;108@end109 110@implementation My_KVO_Observer111- (void)observeValueForKeyPath:(NSString *)keyPath112 ofObject:(id)object113 change:(NSDictionary *)change114 context:(void *)context {115 // we do not really care about KVO'ing - do nothing116 return;117}118- (id)init {119 self = [super init];120 return self;121}122 123- (void)dealloc {124 [super dealloc];125}126@end127 128int main(int argc, const char *argv[]) {129 130 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];131 132 MyClass *object = [[MyClass alloc] initWithInt:1 andFloat:3.14 andChar:'E'];133 134 [object doIncrementByInt:3];135 136 MyOtherClass *object2 = [[MyOtherClass alloc] initWithInt:2137 andFloat:6.28138 andChar:'G'139 andOtherInt:-1];140 141 [object2 doIncrementByInt:3];142 143 NSNumber *num1 = [NSNumber numberWithInt:5];144 NSNumber *num2 = [NSNumber numberWithFloat:3.14];145 NSNumber *num3 = [NSNumber numberWithDouble:3.14];146 NSNumber *num4 = [NSNumber numberWithUnsignedLongLong:0xFFFFFFFFFFFFFFFE];147 NSNumber *num5 = [NSNumber numberWithChar:'A'];148 NSNumber *num6 = [NSNumber numberWithUnsignedLongLong:0xFF];149 NSNumber *num7 = [NSNumber numberWithLong:0x1E8480];150 NSNumber *num8_Y = [NSNumber numberWithBool:YES];151 NSNumber *num8_N = [NSNumber numberWithBool:NO];152 NSNumber *num9 = [NSNumber numberWithShort:0x1E8480];153 NSNumber *num_at1 = @12;154 NSNumber *num_at2 = @-12;155 NSNumber *num_at3 = @12.5;156 NSNumber *num_at4 = @-12.5;157 NSNumber *num_at5 = @'a';158 NSNumber *num_at6 = @42.123f;159 NSNumber *num_at7 = @43.123;160 NSNumber *num_at8 = @12345ll;161 NSNumber *num_at9 = @0xF1234567890abcdeull;162 NSNumber *num_at9b = @-1070935975400915746;163 NSNumber *num_at10 = @YES;164 NSNumber *num_at11 = @NO;165 166 NSDecimalNumber *decimal_number =167 [NSDecimalNumber decimalNumberWithMantissa:123456168 exponent:-10169 isNegative:NO];170 NSDecimalNumber *decimal_number_neg =171 [NSDecimalNumber decimalNumberWithMantissa:123456172 exponent:10173 isNegative:YES];174 NSDecimalNumber *decimal_one = [NSDecimalNumber one];175 NSDecimalNumber *decimal_zero = [NSDecimalNumber zero];176 NSDecimalNumber *decimal_nan = [NSDecimalNumber notANumber];177 178 NSString *str0 = [num6 stringValue];179 180 NSString *str1 =181 [NSString stringWithCString:"A rather short ASCII NSString object is here"182 encoding:NSASCIIStringEncoding];183 184 NSString *str2 = [NSString185 stringWithUTF8String:"A rather short UTF8 NSString object is here"];186 187 NSString *str3 = @"A string made with the at sign is here";188 189 NSString *str4 = [NSString190 stringWithFormat:@"This is string number %ld right here", (long)4];191 192 NSRect ns_rect_4str = {{1, 1}, {5, 5}};193 194 NSString *str5 = NSStringFromRect(ns_rect_4str);195 196 NSString *str6 = [@"/usr/doc/README.1ST" pathExtension];197 198 const unichar myCharacters[] = {0x03C3, 'x', 'x'};199 NSString *str7 = [NSString200 stringWithCharacters:myCharacters201 length:sizeof myCharacters / sizeof *myCharacters];202 203 NSString *str8 =204 [@"/usr/doc/"205 @"file."206 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"207 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"208 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"209 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"210 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"211 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"212 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"213 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"214 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"215 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"216 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"217 @"ensionThisTime" pathExtension];218 219 const unichar myOtherCharacters[] = {220 'a', ' ', 'v', 'e', 'r', 'y', ' ', 'm', 'u', 'c', 'h', ' ', 'b', 'o',221 'r', 'i', 'n', 'g', ' ', 't', 'a', 's', 'k', ' ', 't', 'o', ' ', 'w',222 'r', 'i', 't', 'e', ' ', 'a', ' ', 's', 't', 'r', 'i', 'n', 'g', ' ',223 't', 'h', 'i', 's', ' ', 'w', 'a', 'y', '!', '!', 0x03C3, 0};224 NSString *str9 = [NSString stringWithCharacters:myOtherCharacters225 length:sizeof myOtherCharacters /226 sizeof *myOtherCharacters];227 228 const unichar myNextCharacters[] = {0x03C3, 0x0000};229 230 NSString *str10 = [NSString231 stringWithFormat:@"This is a Unicode string %S number %ld right here",232 myNextCharacters, (long)4];233 234 NSString *str11 = NSStringFromClass([str10 class]);235 236 NSString *label1 = @"Process Name: ";237 NSString *label2 = @"Process Id: ";238 NSString *processName = [[NSProcessInfo processInfo] processName];239 NSString *processID = [NSString240 stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]];241 NSString *str12 = [NSString242 stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];243 244 NSString *strA1 =245 [NSString stringWithCString:"A rather short ASCII NSString object is here"246 encoding:NSASCIIStringEncoding];247 248 NSString *strA2 = [NSString249 stringWithUTF8String:"A rather short UTF8 NSString object is here"];250 251 NSString *strA3 = @"A string made with the at sign is here";252 253 NSString *strA4 = [NSString254 stringWithFormat:@"This is string number %ld right here", (long)4];255 256 NSString *strA5 = NSStringFromRect(ns_rect_4str);257 258 NSString *strA6 = [@"/usr/doc/README.1ST" pathExtension];259 260 NSString *strA7 = [NSString261 stringWithCharacters:myCharacters262 length:sizeof myCharacters / sizeof *myCharacters];263 264 NSString *strA8 =265 [@"/usr/doc/"266 @"file."267 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"268 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"269 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"270 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"271 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"272 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"273 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"274 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"275 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"276 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"277 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"278 @"ensionThisTime" pathExtension];279 280 NSString *strA9 = [NSString stringWithCharacters:myOtherCharacters281 length:sizeof myOtherCharacters /282 sizeof *myOtherCharacters];283 284 NSString *strA10 = [NSString285 stringWithFormat:@"This is a Unicode string %S number %ld right here",286 myNextCharacters, (long)4];287 288 NSString *strA11 = NSStringFromClass([str10 class]);289 290 NSString *strA12 = [NSString291 stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];292 293 NSString *strB1 =294 [NSString stringWithCString:"A rather short ASCII NSString object is here"295 encoding:NSASCIIStringEncoding];296 297 NSString *strB2 = [NSString298 stringWithUTF8String:"A rather short UTF8 NSString object is here"];299 300 NSString *strB3 = @"A string made with the at sign is here";301 302 NSString *strB4 = [NSString303 stringWithFormat:@"This is string number %ld right here", (long)4];304 305 NSString *strB5 = NSStringFromRect(ns_rect_4str);306 307 NSString *strB6 = [@"/usr/doc/README.1ST" pathExtension];308 309 NSString *strB7 = [NSString310 stringWithCharacters:myCharacters311 length:sizeof myCharacters / sizeof *myCharacters];312 313 NSString *strB8 =314 [@"/usr/doc/"315 @"file."316 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"317 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"318 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"319 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"320 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"321 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"322 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"323 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"324 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"325 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"326 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"327 @"ensionThisTime" pathExtension];328 329 NSString *strB9 = [NSString stringWithCharacters:myOtherCharacters330 length:sizeof myOtherCharacters /331 sizeof *myOtherCharacters];332 333 NSString *strB10 = [NSString334 stringWithFormat:@"This is a Unicode string %S number %ld right here",335 myNextCharacters, (long)4];336 337 NSString *strB11 = NSStringFromClass([str10 class]);338 339 NSString *strB12 = [NSString340 stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];341 342 NSString *strC11 = NSStringFromClass([str10 class]);343 344 NSString *strC12 = [NSString345 stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];346 347 NSString *strC1 =348 [NSString stringWithCString:"A rather short ASCII NSString object is here"349 encoding:NSASCIIStringEncoding];350 351 NSString *strC2 = [NSString352 stringWithUTF8String:"A rather short UTF8 NSString object is here"];353 354 NSString *strC3 = @"A string made with the at sign is here";355 356 NSString *strC4 = [NSString357 stringWithFormat:@"This is string number %ld right here", (long)4];358 359 NSString *strC5 = NSStringFromRect(ns_rect_4str);360 361 NSString *strC6 = [@"/usr/doc/README.1ST" pathExtension];362 363 NSString *strC7 = [NSString364 stringWithCharacters:myCharacters365 length:sizeof myCharacters / sizeof *myCharacters];366 367 NSString *strC8 =368 [@"/usr/doc/"369 @"file."370 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"371 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"372 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"373 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"374 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"375 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"376 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"377 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"378 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"379 @"ensionThisTimehasVeryLongExtensionThisTimehasVeryLongExtensionThisTime"380 @"hasVeryLongExtensionThisTimehasVeryLongExtensionThisTimehasVeryLongExt"381 @"ensionThisTime" pathExtension];382 383 NSString *strC9 = [NSString stringWithCharacters:myOtherCharacters384 length:sizeof myOtherCharacters /385 sizeof *myOtherCharacters];386 387 NSString *strC10 = [NSString388 stringWithFormat:@"This is a Unicode string %S number %ld right here",389 myNextCharacters, (long)4];390 391 NSString *strD11 = NSStringFromClass([str10 class]);392 393 NSString *strD12 = [NSString394 stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID];395 396 NSString *eAcute = [NSString stringWithFormat:@"%C", 0x00E9];397 NSString *randomHaziChar = [NSString stringWithFormat:@"%C", 0x9DC5];398 NSString *japanese = @"色は匂へど散りぬるを";399 NSString *italian = @"L'Italia è una Repubblica democratica, fondata sul "400 @"lavoro. La sovranità appartiene al popolo, che la "401 @"esercita nelle forme e nei limiti della Costituzione.";402 NSString *french =403 @"Que veut cette horde d'esclaves, De traîtres, de rois conjurés?";404 NSString *german = @"Über-Ich und aus den Ansprüchen der sozialen Umwelt";405 406 void *data_set[3] = {str1, str2, str3};407 408 NSString *hebrew = [NSString stringWithString:@"לילה טוב"];409 410 NSArray *newArray = [[NSMutableArray alloc] init];411 [newArray addObject:str1];412 [newArray addObject:str2];413 [newArray addObject:str3];414 [newArray addObject:str4];415 [newArray addObject:str5];416 [newArray addObject:str6];417 [newArray addObject:str7];418 [newArray addObject:str8];419 [newArray addObject:str9];420 [newArray addObject:str10];421 [newArray addObject:str11];422 [newArray addObject:str12];423 [newArray addObject:strA1];424 [newArray addObject:strA2];425 [newArray addObject:strA3];426 [newArray addObject:strA4];427 [newArray addObject:strA5];428 [newArray addObject:strA6];429 [newArray addObject:strA7];430 [newArray addObject:strA8];431 [newArray addObject:strA9];432 [newArray addObject:strA10];433 [newArray addObject:strA11];434 [newArray addObject:strA12];435 [newArray addObject:strB1];436 [newArray addObject:strB2];437 [newArray addObject:strB3];438 [newArray addObject:strB4];439 [newArray addObject:strB5];440 [newArray addObject:strB6];441 [newArray addObject:strB7];442 [newArray addObject:strB8];443 [newArray addObject:strB9];444 [newArray addObject:strB10];445 [newArray addObject:strB11];446 [newArray addObject:strB12];447 [newArray addObject:strC1];448 [newArray addObject:strC2];449 [newArray addObject:strC3];450 [newArray addObject:strC4];451 [newArray addObject:strC5];452 [newArray addObject:strC6];453 [newArray addObject:strC7];454 [newArray addObject:strC8];455 [newArray addObject:strC9];456 [newArray addObject:strC10];457 [newArray addObject:strC11];458 [newArray addObject:strC12];459 [newArray addObject:strD11];460 [newArray addObject:strD12];461 462 NSDictionary *newDictionary = [[NSDictionary alloc] initWithObjects:newArray463 forKeys:newArray];464 NSDictionary *newMutableDictionary = [[NSMutableDictionary alloc] init];465 [newMutableDictionary setObject:@"foo" forKey:@"bar0"];466 [newMutableDictionary setObject:@"foo" forKey:@"bar1"];467 [newMutableDictionary setObject:@"foo" forKey:@"bar2"];468 [newMutableDictionary setObject:@"foo" forKey:@"bar3"];469 [newMutableDictionary setObject:@"foo" forKey:@"bar4"];470 [newMutableDictionary setObject:@"foo" forKey:@"bar5"];471 [newMutableDictionary setObject:@"foo" forKey:@"bar6"];472 [newMutableDictionary setObject:@"foo" forKey:@"bar7"];473 [newMutableDictionary setObject:@"foo" forKey:@"bar8"];474 [newMutableDictionary setObject:@"foo" forKey:@"bar9"];475 [newMutableDictionary setObject:@"foo" forKey:@"bar10"];476 [newMutableDictionary setObject:@"foo" forKey:@"bar11"];477 [newMutableDictionary setObject:@"foo" forKey:@"bar12"];478 [newMutableDictionary setObject:@"foo" forKey:@"bar13"];479 [newMutableDictionary setObject:@"foo" forKey:@"bar14"];480 [newMutableDictionary setObject:@"foo" forKey:@"bar15"];481 [newMutableDictionary setObject:@"foo" forKey:@"bar16"];482 [newMutableDictionary setObject:@"foo" forKey:@"bar17"];483 [newMutableDictionary setObject:@"foo" forKey:@"bar18"];484 [newMutableDictionary setObject:@"foo" forKey:@"bar19"];485 [newMutableDictionary setObject:@"foo" forKey:@"bar20"];486 487 /* Copying an NSMutableDictionary makes a different member of the488 class cluster, so let's also make a copy of this one: */489 NSMutableDictionary *copyDictionary = [newMutableDictionary copy];490 491 CFMutableDictionaryRef newMutableDictionaryRef = CFDictionaryCreateMutableCopy(kCFAllocatorDefault, 0, newMutableDictionary);492 493 id cfKeys[4] = {@"foo", @"bar", @"baz", @"quux"};494 id cfValues[4] = {@"foo", @"bar", @"baz", @"quux"};495 NSDictionary *nsDictionary = CFBridgingRelease(496 CFDictionaryCreate(nil, (void *)cfKeys, (void *)cfValues, 2, nil, nil));497 NSDictionary *nscfDictionary = CFBridgingRelease(498 CFDictionaryCreate(nil, (void *)cfKeys, (void *)cfValues, 4, nil, nil));499 CFDictionaryRef cfDictionaryRef = (__bridge CFDictionaryRef)nsDictionary;500 501 NSAttributedString *attrString =502 [[NSAttributedString alloc] initWithString:@"hello world from foo"503 attributes:newDictionary];504 [attrString isEqual:nil];505 NSAttributedString *mutableAttrString =506 [[NSMutableAttributedString alloc] initWithString:@"hello world from foo"507 attributes:newDictionary];508 [mutableAttrString isEqual:nil];509 510 NSString *mutableString = [[NSMutableString alloc] initWithString:@"foo"];511 [mutableString512 insertString:513 @"foo said this string needs to be very long so much longer than "514 @"whatever other string has been seen ever before by anyone of the "515 @"mankind that of course this is still not long enough given what "516 @"foo our friend foo our lovely dearly friend foo desired of us so i "517 @"am adding more stuff here for the sake of it and for the joy of "518 @"our friend who is named guess what just foo. hence, dear friend "519 @"foo, stay safe, your string is now long enough to accommodate "520 @"your testing need and I will make sure that if not we extend it "521 @"with even more fuzzy random meaningless words pasted one after the "522 @"other from a long tiresome friday evening spent working in my "523 @"office. my office mate went home but I am still randomly typing "524 @"just for the fun of seeing what happens of the length of a Mutable "525 @"String in Cocoa if it goes beyond one byte.. so be it, dear "526 atIndex:0];527 528 NSString *mutableGetConst =529 [NSString stringWithCString:[mutableString cString]];530 531 [mutableGetConst length];532 533 NSData *immutableData = [[NSData alloc] initWithBytes:"HELLO" length:5];534 NSData *mutableData = [[NSMutableData alloc] initWithBytes:"NODATA" length:6];535 536 // No-copy versions of NSData initializers use NSConcreteData if over 2^16537 // elements are specified.538 unsigned concreteLength = 100000;539 void *zeroes1 = calloc(1, concreteLength);540 // initWithBytesNoCopy takes ownership of the buffer.541 NSData *concreteData = [[NSData alloc] initWithBytesNoCopy:zeroes1542 length:concreteLength];543 void *zeroes2 = calloc(1, concreteLength);544 NSMutableData *concreteMutableData =545 [[NSMutableData alloc] initWithBytesNoCopy:zeroes2 length:concreteLength];546 547 [mutableData appendBytes:"MOREDATA" length:8];548 549 [immutableData length];550 [mutableData length];551 552 NSSet *nsset = [[NSSet alloc] initWithObjects:str1, str2, str3, nil];553 NSSet *nsmutableset =554 [[NSMutableSet alloc] initWithObjects:str1, str2, str3, nil];555 [nsmutableset addObject:str4];556 NSSet *nscfSet =557 CFBridgingRelease(CFSetCreate(nil, (void *)cfValues, 2, nil));558 CFSetRef cfSetRef = (__bridge CFSetRef)nscfSet;559 560 CFDataRef data_ref =561 CFDataCreate(kCFAllocatorDefault, [immutableData bytes], 5);562 563 CFMutableDataRef mutable_data_ref =564 CFDataCreateMutable(kCFAllocatorDefault, 8);565 CFDataAppendBytes(mutable_data_ref, [mutableData bytes], 5);566 567 CFMutableStringRef mutable_string_ref = CFStringCreateMutable(NULL, 100);568 CFStringAppend(mutable_string_ref, CFSTR("Wish ya knew"));569 570 CFStringRef cfstring_ref = CFSTR("HELLO WORLD");571 572 CFArrayRef cfarray_ref = CFArrayCreate(NULL, data_set, 3, NULL);573 CFMutableArrayRef mutable_array_ref = CFArrayCreateMutable(NULL, 16, NULL);574 575 CFArraySetValueAtIndex(mutable_array_ref, 0, str1);576 CFArraySetValueAtIndex(mutable_array_ref, 1, str2);577 CFArraySetValueAtIndex(mutable_array_ref, 2, str3);578 CFArraySetValueAtIndex(mutable_array_ref, 3, str4);579 CFArraySetValueAtIndex(mutable_array_ref, 0, str5); // replacing value at 0!!580 CFArraySetValueAtIndex(mutable_array_ref, 4, str6);581 CFArraySetValueAtIndex(mutable_array_ref, 5, str7);582 CFArraySetValueAtIndex(mutable_array_ref, 6, str8);583 CFArraySetValueAtIndex(mutable_array_ref, 7, str9);584 CFArraySetValueAtIndex(mutable_array_ref, 8, str10);585 CFArraySetValueAtIndex(mutable_array_ref, 9, str11);586 CFArraySetValueAtIndex(mutable_array_ref, 10, str12);587 588 CFBinaryHeapRef binheap_ref =589 CFBinaryHeapCreate(NULL, 15, &kCFStringBinaryHeapCallBacks, NULL);590 CFBinaryHeapAddValue(binheap_ref, str1);591 CFBinaryHeapAddValue(binheap_ref, str2);592 CFBinaryHeapAddValue(binheap_ref, str3);593 CFBinaryHeapAddValue(binheap_ref, str4);594 CFBinaryHeapAddValue(binheap_ref, str5);595 CFBinaryHeapAddValue(binheap_ref, str6);596 CFBinaryHeapAddValue(binheap_ref, str7);597 CFBinaryHeapAddValue(binheap_ref, str8);598 CFBinaryHeapAddValue(binheap_ref, str9);599 CFBinaryHeapAddValue(binheap_ref, str10);600 CFBinaryHeapAddValue(binheap_ref, str11);601 CFBinaryHeapAddValue(binheap_ref, str12);602 CFBinaryHeapAddValue(binheap_ref, strA1);603 CFBinaryHeapAddValue(binheap_ref, strB1);604 CFBinaryHeapAddValue(binheap_ref, strC1);605 CFBinaryHeapAddValue(binheap_ref, strA11);606 CFBinaryHeapAddValue(binheap_ref, strB11);607 CFBinaryHeapAddValue(binheap_ref, strC11);608 CFBinaryHeapAddValue(binheap_ref, strB12);609 CFBinaryHeapAddValue(binheap_ref, strC12);610 CFBinaryHeapAddValue(binheap_ref, strA12);611 612 CFURLRef cfurl_ref =613 CFURLCreateWithString(NULL, CFSTR("http://www.foo.bar/"), NULL);614 CFURLRef cfchildurl_ref =615 CFURLCreateWithString(NULL, CFSTR("page.html"), cfurl_ref);616 CFURLRef cfgchildurl_ref =617 CFURLCreateWithString(NULL, CFSTR("?whatever"), cfchildurl_ref);618 619 NSDictionary *error_userInfo = @{@"a" : @1, @"b" : @2};620 NSError *nserror = [[NSError alloc] initWithDomain:@"Foobar"621 code:-1234622 userInfo:error_userInfo];623 NSError **nserrorptr = &nserror;624 625 NSBundle *bundle_string = [[NSBundle alloc]626 initWithPath:@"/System/Library/Frameworks/Accelerate.framework"];627 NSBundle *bundle_url = [[NSBundle alloc]628 initWithURL:[[NSURL alloc]629 initWithString:@"file://localhost/System/Library/"630 @"Frameworks/Foundation.framework"]];631 632 NSBundle *main_bundle = [NSBundle mainBundle];633 634 NSArray *bundles = [NSBundle allBundles];635 636 NSURL *nsurl0;637 638 for (NSBundle *bundle in bundles) {639 nsurl0 = [bundle bundleURL];640 }641 642 NSException *except0 = [[NSException alloc] initWithName:@"TheGuyWhoHasNoName"643 reason:@"First"644 userInfo:nil];645 NSException *except1 =646 [[NSException alloc] initWithName:@"TheGuyWhoHasNoName~1"647 reason:@"Second"648 userInfo:nil];649 NSException *except2 =650 [[NSException alloc] initWithName:@"TheGuyWhoHasNoName`2"651 reason:@"Third"652 userInfo:nil];653 NSException *except3 =654 [[NSException alloc] initWithName:@"TheGuyWhoHasNoName/3"655 reason:@"Fourth"656 userInfo:nil];657 658 NSURL *nsurl = [[NSURL alloc] initWithString:@"http://www.foo.bar"];659 NSURL *nsurl2 = [NSURL URLWithString:@"page.html" relativeToURL:nsurl];660 NSURL *nsurl3 = [NSURL URLWithString:@"?whatever" relativeToURL:nsurl2];661 662 NSDate *date1 = [NSDate663 dateWithTimeIntervalSince1970:133890 * 60 * 60]; // 6pm April 10, 1985 GMT664 NSDate *date2 =665 [NSDate dateWithNaturalLanguageString:@"12am January 1, 2011"];666 NSDate *date3 = [NSDate date];667 NSDate *date4 = [NSDate dateWithTimeIntervalSince1970:24 * 60 * 60];668 NSDate *date5 =669 [NSDate dateWithTimeIntervalSinceReferenceDate:670 floor([[NSDate date] timeIntervalSinceReferenceDate])];671 672 NSDate *date_1970_minus_06 = [NSDate dateWithTimeIntervalSince1970:-0.6];673 NSDate *date_1970_minus_05 = [NSDate dateWithTimeIntervalSince1970:-0.5];674 NSDate *date_1970_minus_04 = [NSDate dateWithTimeIntervalSince1970:-0.4];675 676 NSDate *date_1970_plus_06 = [NSDate dateWithTimeIntervalSince1970:0.6];677 NSDate *date_1970_plus_05 = [NSDate dateWithTimeIntervalSince1970:0.5];678 NSDate *date_1970_plus_04 = [NSDate dateWithTimeIntervalSince1970:0.4];679 680 NSDate *distant_past = [NSDate distantPast];681 NSDate *distant_future = [NSDate distantFuture];682 683 CFAbsoluteTime date1_abs = CFDateGetAbsoluteTime(date1);684 CFAbsoluteTime date2_abs = CFDateGetAbsoluteTime(date2);685 CFAbsoluteTime date3_abs = CFDateGetAbsoluteTime(date3);686 CFAbsoluteTime date4_abs = CFDateGetAbsoluteTime(date4);687 CFAbsoluteTime date5_abs = CFDateGetAbsoluteTime(date5);688 689 NSIndexSet *iset1 =690 [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 4)];691 NSIndexSet *iset2 =692 [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 512)];693 694 NSMutableIndexSet *imset = [[NSMutableIndexSet alloc] init];695 [imset addIndex:1936];696 [imset addIndex:7];697 [imset addIndex:9];698 [imset addIndex:11];699 [imset addIndex:24];700 [imset addIndex:41];701 [imset addIndex:58];702 [imset addIndex:61];703 [imset addIndex:62];704 [imset addIndex:63];705 706 CFTimeZoneRef cupertino = CFTimeZoneCreateWithName(NULL, CFSTR("PST"), YES);707 CFTimeZoneRef home =708 CFTimeZoneCreateWithName(NULL, CFSTR("Europe/Rome"), YES);709 CFTimeZoneRef europe = CFTimeZoneCreateWithName(NULL, CFSTR("CET"), YES);710 711 NSTimeZone *cupertino_ns = [NSTimeZone timeZoneWithAbbreviation:@"PST"];712 NSTimeZone *home_ns = [NSTimeZone timeZoneWithName:@"Europe/Rome"];713 NSTimeZone *europe_ns = [NSTimeZone timeZoneWithAbbreviation:@"CET"];714 715 CFGregorianUnits cf_greg_units = {1, 3, 5, 12, 5, 7};716 CFGregorianDate cf_greg_date =717 CFAbsoluteTimeGetGregorianDate(CFDateGetAbsoluteTime(date1), NULL);718 CFRange cf_range = {4, 4};719 NSPoint ns_point = {4, 4};720 NSRange ns_range = {4, 4};721 722 NSRect ns_rect = {{1, 1}, {5, 5}};723 NSRect *ns_rect_ptr = &ns_rect;724 NSRectArray ns_rect_arr = &ns_rect;725 NSSize ns_size = {5, 7};726 NSSize *ns_size_ptr = &ns_size;727 728 CGSize cg_size = {1, 6};729 CGPoint cg_point = {2, 7};730 CGRect cg_rect = {{1, 2}, {7, 7}};731 732#ifndef IOS733 RGBColor rgb_color = {3, 56, 35};734 RGBColor *rgb_color_ptr = &rgb_color;735#endif736 737 Rect rect = {4, 8, 4, 7};738 Rect *rect_ptr = ▭739 740 Point point = {7, 12};741 Point *point_ptr = &point;742 743#ifndef IOS744 HIPoint hi_point = {7, 12};745 HIRect hi_rect = {{3, 5}, {4, 6}};746#endif747 748 SEL foo_selector = @selector(foo_selector_impl);749 750 CFMutableBitVectorRef mut_bv = CFBitVectorCreateMutable(NULL, 64);751 CFBitVectorSetCount(mut_bv, 50);752 CFBitVectorSetBitAtIndex(mut_bv, 0, 1);753 CFBitVectorSetBitAtIndex(mut_bv, 1, 1);754 CFBitVectorSetBitAtIndex(mut_bv, 2, 1);755 CFBitVectorSetBitAtIndex(mut_bv, 5, 1);756 CFBitVectorSetBitAtIndex(mut_bv, 6, 1);757 CFBitVectorSetBitAtIndex(mut_bv, 8, 1);758 CFBitVectorSetBitAtIndex(mut_bv, 10, 1);759 CFBitVectorSetBitAtIndex(mut_bv, 11, 1);760 CFBitVectorSetBitAtIndex(mut_bv, 16, 1);761 CFBitVectorSetBitAtIndex(mut_bv, 17, 1);762 CFBitVectorSetBitAtIndex(mut_bv, 19, 1);763 CFBitVectorSetBitAtIndex(mut_bv, 20, 1);764 CFBitVectorSetBitAtIndex(mut_bv, 22, 1);765 CFBitVectorSetBitAtIndex(mut_bv, 24, 1);766 CFBitVectorSetBitAtIndex(mut_bv, 28, 1);767 CFBitVectorSetBitAtIndex(mut_bv, 29, 1);768 CFBitVectorSetBitAtIndex(mut_bv, 30, 1);769 CFBitVectorSetBitAtIndex(mut_bv, 30, 1);770 CFBitVectorSetBitAtIndex(mut_bv, 31, 1);771 CFBitVectorSetBitAtIndex(mut_bv, 34, 1);772 CFBitVectorSetBitAtIndex(mut_bv, 35, 1);773 CFBitVectorSetBitAtIndex(mut_bv, 37, 1);774 CFBitVectorSetBitAtIndex(mut_bv, 39, 1);775 CFBitVectorSetBitAtIndex(mut_bv, 40, 1);776 CFBitVectorSetBitAtIndex(mut_bv, 41, 1);777 CFBitVectorSetBitAtIndex(mut_bv, 43, 1);778 CFBitVectorSetBitAtIndex(mut_bv, 47, 1);779 780 Molecule *molecule = [Molecule new];781 782 Class myclass = NSClassFromString(@"NSValue");783 Class myclass2 = [str0 class];784 Class myclass3 = [molecule class];785 Class myclass4 = NSClassFromString(@"NSMutableArray");786 Class myclass5 = [nil class];787 788 NSArray *components = @[ @"usr", @"blah", @"stuff" ];789 NSString *path = [NSString pathWithComponents:components];790 791 [molecule addObserver:[My_KVO_Observer new]792 forKeyPath:@"atoms"793 options:0794 context:NULL]; // Set break point at this line.795 [newMutableDictionary addObserver:[My_KVO_Observer new]796 forKeyPath:@"weirdKeyToKVO"797 options:NSKeyValueObservingOptionNew798 context:NULL];799 800 [molecule setAtoms:nil];801 [molecule setAtoms:[NSMutableArray new]];802 803 [pool drain];804 return 0;805}806