1#import <Foundation/Foundation.h> 2 3#if defined(__APPLE__) 4#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__) 5#define IOS 6#endif 7#endif 8 9#if defined(IOS) 10#import <Foundation/NSGeometry.h> 11#else 12#import <Carbon/Carbon.h> 13#endif 14 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@end 25 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@end 33 34@implementation MyClass 35 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@end 52 53@implementation MyOtherClass 54 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@end 65 66@interface Atom : NSObject { 67 float mass; 68} 69- (void)setMass:(float)newMass; 70- (float)mass; 71@end 72 73@interface Molecule : NSObject { 74 NSArray *atoms; 75} 76- (void)setAtoms:(NSArray *)newAtoms; 77- (NSArray *)atoms; 78@end 79 80@implementation Atom 81 82- (void)setMass:(float)newMass { 83 mass = newMass; 84} 85- (float)mass { 86 return mass; 87} 88 89@end 90 91@implementation Molecule 92 93- (void)setAtoms:(NSArray *)newAtoms { 94 atoms = newAtoms; 95} 96- (NSArray *)atoms { 97 return atoms; 98} 99@end 100 101@interface My_KVO_Observer : NSObject 102- (void)observeValueForKeyPath:(NSString *)keyPath 103 ofObject:(id)object 104 change:(NSDictionary *)change 105 context:(void *)context; 106- (id)init; 107- (void)dealloc; 108@end 109 110@implementation My_KVO_Observer 111- (void)observeValueForKeyPath:(NSString *)keyPath 112 ofObject:(id)object 113 change:(NSDictionary *)change 114 context:(void *)context { 115 // we do not really care about KVO'ing - do nothing 116 return; 117} 118- (id)init { 119 self = [super init]; 120 return self; 121} 122 123- (void)dealloc { 124 [super dealloc]; 125} 126@end 127 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:2 137 andFloat:6.28 138 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:123456 168 exponent:-10 169 isNegative:NO]; 170 NSDecimalNumber *decimal_number_neg = 171 [NSDecimalNumber decimalNumberWithMantissa:123456 172 exponent:10 173 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 = [NSString 185 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 = [NSString 190 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 = [NSString 200 stringWithCharacters:myCharacters 201 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:myOtherCharacters 225 length:sizeof myOtherCharacters / 226 sizeof *myOtherCharacters]; 227 228 const unichar myNextCharacters[] = {0x03C3, 0x0000}; 229 230 NSString *str10 = [NSString 231 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 = [NSString 240 stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]]; 241 NSString *str12 = [NSString 242 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 = [NSString 249 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 = [NSString 254 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 = [NSString 261 stringWithCharacters:myCharacters 262 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:myOtherCharacters 281 length:sizeof myOtherCharacters / 282 sizeof *myOtherCharacters]; 283 284 NSString *strA10 = [NSString 285 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 = [NSString 291 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 = [NSString 298 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 = [NSString 303 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 = [NSString 310 stringWithCharacters:myCharacters 311 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:myOtherCharacters 330 length:sizeof myOtherCharacters / 331 sizeof *myOtherCharacters]; 332 333 NSString *strB10 = [NSString 334 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 = [NSString 340 stringWithFormat:@"%@ %@ %@ %@", label1, processName, label2, processID]; 341 342 NSString *strC11 = NSStringFromClass([str10 class]); 343 344 NSString *strC12 = [NSString 345 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 = [NSString 352 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 = [NSString 357 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 = [NSString 364 stringWithCharacters:myCharacters 365 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:myOtherCharacters 384 length:sizeof myOtherCharacters / 385 sizeof *myOtherCharacters]; 386 387 NSString *strC10 = [NSString 388 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 = [NSString 394 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:newArray 463 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 the 488 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 [mutableString 512 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^16 537 // 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:zeroes1 542 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:-1234 622 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 = [NSDate 663 dateWithTimeIntervalSince1970:133890 * 60 * 60]; // 6pm April 10, 1985 GMT 664 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 IOS 733 RGBColor rgb_color = {3, 56, 35}; 734 RGBColor *rgb_color_ptr = &rgb_color; 735#endif 736 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 IOS 744 HIPoint hi_point = {7, 12}; 745 HIRect hi_rect = {{3, 5}, {4, 6}}; 746#endif 747 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:0 794 context:NULL]; // Set break point at this line. 795 [newMutableDictionary addObserver:[My_KVO_Observer new] 796 forKeyPath:@"weirdKeyToKVO" 797 options:NSKeyValueObservingOptionNew 798 context:NULL]; 799 800 [molecule setAtoms:nil]; 801 [molecule setAtoms:[NSMutableArray new]]; 802 803 [pool drain]; 804 return 0; 805} 806