[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Why does an NSNumber start off with a retain count of 2?
From: |
Issac Trotts |
Subject: |
Why does an NSNumber start off with a retain count of 2? |
Date: |
Wed, 22 Mar 2006 12:48:10 -0800 |
Here's a test program that shows the odd behavior.
ijtrotts@tux /tmp $ cat numcrash.m
#import <Foundation/Foundation.h>
#include <assert.h>
int main(int argc, char *argv[])
{
NSAutoreleasePool* pool = [NSAutoreleasePool new];
NSNumber* n = [[NSNumber alloc] initWithInt:5];
NSString* s = [[NSString alloc] init];
NSMutableArray* ma = [[NSMutableArray alloc] init];
NSArray* a = [[NSArray alloc] init];
NSLog([NSString stringWithFormat:@"n's retain count is %i.\n",
[n retainCount]]);
NSLog([NSString stringWithFormat:@"s's count is %i.\n",
[s retainCount]]);
NSLog([NSString stringWithFormat:@"ma's retain count is %i.\n",
[ma retainCount]]);
NSLog([NSString stringWithFormat:@"a's retain count is %i.\n",
[a retainCount]]);
assert([n retainCount]==1);
[pool release];
return 0;
}
ijtrotts@tux /tmp $ gcc -o numcrash numcrash.m -lobjc -I
/usr/GNUstep/System/Library/Headers/
-fconstant-string-class=NSConstantString -lgnustep-base
-L/usr/GNUstep/System/Library/Libraries -Wno-import
ijtrotts@tux /tmp $ ./numcrash
2006-03-22 20:46:37.000 numcrash[5510] Unknown time zone name `PST'.
2006-03-22 20:46:37.000 numcrash[5510] Using time zone with absolute offset 0.
2006-03-22 20:46:37.000 numcrash[5510] n's retain count is 2.
2006-03-22 20:46:37.000 numcrash[5510] s's count is 1.
2006-03-22 20:46:37.000 numcrash[5510] ma's retain count is 1.
2006-03-22 20:46:37.000 numcrash[5510] a's retain count is 1.
numcrash: numcrash.m:19: main: Assertion `[n retainCount]==1' failed.
Aborted
- Why does an NSNumber start off with a retain count of 2?,
Issac Trotts <=