先随便记一下
View Code
/** ===== NSString ===== */
NSString* string = @"hello, 1901";
NSLog(@"string retainCount: %lu", [string retainCount]);
// output: string retainCount: 1152921504606846975
NSString* string = [[NSString alloc] initWithString:@"hello, 1901"];
NSLog(@"string retainCount: %lu", [string retainCount]);
// output: string retainCount: 1152921504606846975
NSString* string = [[NSString alloc] initWithFormat:@"%@", @"hello, 1901"];
NSLog(@"string retainCount: %lu", [string retainCount]);
// output: string retainCount: 1
NSString* string = [[NSString alloc] initWithUTF8String:"hello, 1901"];
NSLog(@"string retainCount: %lu", [string retainCount]);
// output: string retainCount: 1
/** ===== NSMutableArray & NSArray ===== */
NSMutableArray* array = [[NSMutableArray alloc] init];
NSLog(@"array retainCount: %lu", [array retainCount]);
// array retainCount: 1
NSArray* array = [[NSArray alloc] init];
NSLog(@"array retainCount: %lu", [array retainCount]);
// output: array retainCount: 2
NSArray* array = [[NSArray alloc] initWithObjects:@"hello, 1901", nil];
NSLog(@"array retainCount: %lu", [array retainCount]);
// output: array retainCount: 1
NSArray* array1 = [[NSArray alloc] init];
NSLog(@"array1 retainCount: %p", array1);
NSArray* array2 = [[NSArray alloc] init];
NSLog(@"array2 retainCount: %p", array2);
NSArray* array3 = [[NSArray alloc] init];
NSLog(@"array3 retainCount: %p", array3);
/*
output:
array1 retainCount: 0x10010d050
array2 retainCount: 0x10010d050
array3 retainCount: 0x10010d050
*/
NSString* string = [NSString stringWithUTF8String:"hello, 1901"];
NSArray* array1 = [[NSArray alloc] initWithObjects:string, nil];
NSLog(@"array1 retainCount: %p", array1);
NSArray* array2 = [[NSArray alloc] initWithObjects:string, nil];
NSLog(@"array2 retainCount: %p", array2);
/*
output:
array1 retainCount: 0x1001107c0
array2 retainCount: 0x100110840
*/
--kaixuan's cnblogs