I am using Cocoa frame work with Obj C programming. I have a class like following:
Now the ClassA's method "createNewObject" is being called from different threads. Now how to protect the static variable "count" being over written/read by threads at a time. I mean, how to prevent the access of "count" by different threads simultaneously.
I tried to use "NSLock", but throwing exception. Can somebody suggest me how to achieve this?
Code:
@interface ClassA: NSObject
+(int) initCount;
+(void) initialize;
+(ClassA*)createNewObject:(int)newValue;
@end
#import "ClassA.h"
static int count;
@implementation ClassA
-(id) init {
self = [super init];
count++; //some operation on count variable.
return self;
}
+(int) initCount {
return count;
}
+(void) initialize {
count = 0;
}
+(ClassA*)createNewObject:(int)newValue
{
count = newValue;
id ret = [[[self alloc] init] autorelease];
return ret;
}
@end
Now the ClassA's method "createNewObject" is being called from different threads. Now how to protect the static variable "count" being over written/read by threads at a time. I mean, how to prevent the access of "count" by different threads simultaneously.
I tried to use "NSLock", but throwing exception. Can somebody suggest me how to achieve this?