The Code-Bin
Links
Home
Add your code!
All Listings
About
Latest Entry
Featured Scripts
Author's Website
Latest Entries
FFMPEG Thumbnail Scr...
PHP, 0.8KB
Jul. 29, 10:24pm
John
Z80 Assembler, 190 bytes
Feb. 17, 3:36am
John
Z80 Assembler, 176 bytes
Sep. 13, 2:19am
John
Z80 Assembler, 77 bytes
Sep. 13, 2:18am
John
Z80 Assembler, 209 bytes
Sep. 13, 2:17am
SharedDBManager
Posted by: Ashok Menon | May 26, 2010 @ 12:45pm
Objective C Code
[
Download
]
// // SharedDBManager.h // ClassVarTest // // Created by Ashok Menon on 26/05/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import <Cocoa/Cocoa.h> @interface SharedDBManager : NSObject { } -(id)init; -(void)instanceAddsRecord:(id)obj; -(id)instanceReturnsObjectAtIndex:(NSUInteger)index; -(int)instanceReturnsInstanceCount; +(void)initializeSharedDB; +(id)returnObjectAtIndex:(NSUInteger)index; +(int)instanceCount; +(void)addRecord:(id)obj; -(void)dealloc; +(void)purgeSharedDB; +(void)reInitializeSharedDB; @end // // SharedDBManager.m // ClassVarTest // // Created by Ashok Menon on 26/05/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import "SharedDBManager.h" static NSMutableArray *SharedDB; static int count; @implementation SharedDBManager -(id)init { if (self = [super init]) { count ++; } return self; } -(void)instanceAddsRecord:(id)obj { [SharedDBManager addRecord:obj]; } -(id)instanceReturnsObjectAtIndex:(NSUInteger)index { return [SharedDBManager returnObjectAtIndex:index]; } -(int)instanceReturnsInstanceCount { return count; } +(void)initializeSharedDB{ SharedDB = [[NSMutableArray alloc] init]; count = 0; } +(id)returnObjectAtIndex:(NSUInteger)index { return [SharedDB objectAtIndex:index]; } +(int)instanceCount { return count; } +(void)addRecord:(id)obj { [SharedDB addObject:obj]; } -(void)dealloc { count--; [super dealloc]; } +(void)purgeSharedDB { SharedDB = nil; } +(void)reInitializeSharedDB { [SharedDBManager purgeSharedDB]; SharedDB = [[NSMutableArray alloc] init]; } @end // // ClassOne.h // ClassVarTest // // Created by Ashok Menon on 26/05/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import <Cocoa/Cocoa.h> @class SharedDBManager; @interface ClassOne : NSObject { SharedDBManager *dbManager; } @property (nonatomic, retain) SharedDBManager *dbManager; -(id)init; -(void)dealloc; @end // // ClassOne.m // ClassVarTest // // Created by Ashok Menon on 26/05/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import "ClassOne.h" #import "SharedDBManager.h" @implementation ClassOne @synthesize dbManager; -(id)init { if (self = [super init]) { dbManager = [[SharedDBManager alloc] init]; NSString *record = [NSString stringWithFormat:@"Added from ClassOne"]; [dbManager instanceAddsRecord:record]; [record release]; } return self; } -(void)dealloc { [dbManager release]; [super dealloc]; } @end // // ClassOne.h // ClassVarTest // // Created by Ashok Menon on 26/05/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import <Cocoa/Cocoa.h> @class SharedDBManager; @interface ClassTwo : NSObject { SharedDBManager *dbManager; } @property (nonatomic, retain) SharedDBManager *dbManager; -(id)init; -(void)dealloc; @end // // ClassOne.m // ClassVarTest // // Created by Ashok Menon on 26/05/2010. // Copyright 2010 __MyCompanyName__. All rights reserved. // #import "ClassTwo.h" #import "SharedDBManager.h" @implementation ClassTwo @synthesize dbManager; -(id)init { if (self = [super init]) { dbManager = [[SharedDBManager alloc] init]; NSString *record = [NSString stringWithFormat:@"Added from ClassTwo"]; [dbManager instanceAddsRecord:record]; [record release]; } return self; } -(void)dealloc { [dbManager release]; [super dealloc]; } @end #import <Foundation/Foundation.h> #import "SharedDBManager.h" #import "ClassOne.h" #import "ClassTwo.h" int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; [SharedDBManager initializeSharedDB]; ClassOne *classA = [[ClassOne alloc] init]; ClassTwo *classB = [[ClassTwo alloc] init]; NSLog(@"Instances of SharedDB: %d", [SharedDBManager instanceCount]); NSLog(@"Object Created by ClassOne, Accessed by ClassOne: %@", [classA.dbManager instanceReturnsObjectAtIndex:0]); NSLog(@"Object Created by ClassTwo, Accessed by ClassTwo: %@", [classB.dbManager instanceReturnsObjectAtIndex:1]); NSLog(@"Object Created by ClassOne, Accessed by Class Two: %@", [classB.dbManager instanceReturnsObjectAtIndex:0]); NSLog(@"Object Created by ClassTwo, Accessed by Class One: %@", [classA.dbManager instanceReturnsObjectAtIndex:1]); NSLog(@"Object Created by ClassOne, Accessed by SharedDBManager: %@", [SharedDBManager returnObjectAtIndex:0]); NSLog(@"Object Created by ClassTwo, Accessed by SharedDBManager: %@", [SharedDBManager returnObjectAtIndex:1]); [SharedDBManager reInitializeSharedDB]; [SharedDBManager addRecord:@"First Record, Created by SharedDBManager"]; NSLog(@"Object Created by SharedDBManager, Accessed by Class One: %@", [classA.dbManager instanceReturnsObjectAtIndex:0]); [classA release]; [classB release]; NSLog(@"Instance Count: %d", [SharedDBManager instanceCount]); [pool drain]; return 0; }
Syntax Highlighting
[
Open in new window
]
Author Comments
none
Rating
4.47 / 8
49 Votes
http://codebin.yi.org/655
page generated in 0.00 seconds