relevant code:
Code:
+(id)sharedAddressBook {
static AddressBook *sharedAddressBook = nil;
if ( ! sharedAddressBook ) {
// Load from file if the file exists
NSFileManager *fm = [NSFileManager defaultManager];
if ( [fm fileExistsAtPath:AddressBookFilePath] ) {
sharedAddressBook = [[AddressBook alloc] initWithFile:AddressBookFilePath];
}
else { // Create a new AddressBook
sharedAddressBook = [[AddressBook alloc] init];
}
}
return sharedAddressBook;
}
it confuses me that every call to sharedAddressBook starts with:
static AddressBook *sharedAddressBook = nil;
if ( ! sharedAddressBook ) {
...
}
this seems like it will always be evaluated, and the address book will be reinitialized every time...
please let me know what I'm missing here.