Hi,
This is my first post, just started learning objective-C. Got a problem while testing some basic objects. I have a "Tire" object, when initialised I assigned it a random number. But when I created 4 of them, how come they all have the same number?
Any help appreciated. Thanks!
Code:
//Tire.h
#import <Foundation/Foundation.h>
@interface Tire : NSObject {
NSString *serialNo;
}
@property (nonatomic) NSString *serialNo;
@end
//Tire.m
#import "Tire.h"
@implementation Tire
@synthesize serialNo;
-(id) init {
if (self=[super init]) {
srandom(time(0));
int n = (random() % (100)) + 1;
serialNo = [[NSString alloc] initWithFormat:@"ABC%d",n];
}
return (self);
}
-(NSString *) description {
return (@"I am a tire, serialNo is %@",self.serialNo);
}
-(void) dealloc {
[serialNo release];
[super dealloc];
}
//CmdObjTest.m
#import <Foundation/Foundation.h>
#import "Tire.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// insert code here...
NSLog(@"Hello, World!");
Tire *n1 = [[Tire alloc] init];
NSLog(@"Tire1: %@",n1);
Tire *n2 = [[Tire alloc] init];
NSLog(@"Tire2: %@",n2);
Tire *n3 = [[Tire alloc] init];
NSLog(@"Tire3: %@",n3);
[pool drain];
return 0;
}
@end
This is the output, I was expecting each object showing different number??
Code:
2011-06-01 20:42:50.885 CmdObjTest[1621:a0f] Hello, World!
2011-06-01 20:42:50.888 CmdObjTest[1621:a0f] Tire1: ABC25
2011-06-01 20:42:50.888 CmdObjTest[1621:a0f] Tire2: ABC25
2011-06-01 20:42:50.888 CmdObjTest[1621:a0f] Tire3: ABC25
2011-06-01 20:46:49.333 CmdObjTest[1647:a0f] Hello, World!
2011-06-01 20:46:49.335 CmdObjTest[1647:a0f] Tire1: ABC96
2011-06-01 20:46:49.336 CmdObjTest[1647:a0f] Tire2: ABC96
2011-06-01 20:46:49.336 CmdObjTest[1647:a0f] Tire3: ABC96