[sword-devel] Objective-C/Cocoa example code

Nathan Youngman sword-devel@crosswire.org
Sat, 30 Mar 2002 13:14:09 -0700

For anyone interested, this is an Objective-C code snippet (Mac OS X) 
to populate a drop down with a list of modules installed. It's really 
not that complicated - square brackets are for method calls, @ 
symbols indicate NSString's (vs. normal C strings).

Because Cocoa uses a bunch of its own data types (NSString is a 
Unicode string object used throughout the API), it seems I will be 
writing several wrappers for the Sword API. The swordModulesForType 
function below would be some of that wrapper code, using a mix of 
Objective-C and C++. The code in my AppController could then be pure 

- n8

/* Startup code
- (void)awakeFromNib
	[modulePopUp removeAllItems];
	[modulePopUp addItemsWithTitles: [self swordModulesForType: 
@"biblical texts"]];

/* swordModulesForType:
    Retrieve list of installed modules as an array, where type is:
	@"Biblical Texts"
- (NSMutableArray *)swordModulesForType:(NSString *)type
	SWMgr manager;
	SWModule *module;
	ModMap::iterator it;
	NSMutableArray *moduleList = [[NSMutableArray alloc] init];

	for (it = manager.Modules.begin(); it != manager.Modules.end(); it++)
		module = it->second;
		if( [type caseInsensitiveCompare: @"ALL"] ||[type 
			[NSString stringWithCString:module->Type()]] )
			[moduleList addObject: [NSString 

	[moduleList autorelease];	// release memory later
	return moduleList;

Nathan Youngman
E-mail: sword at nathany.com
Web: http://nathany.com