Based on the information in the "interchangable data types" document, Would it be possible to do the following?
NSMutableArray serialPorts = [[NSMutableArray alloc] init]; GetSerialPortPaths(serialServices, (CFMutableArrayRef)serialPorts); printf("Found %d serial ports\n", [serialPorts count]); This way I do not have multiple copies. The NSMutableArray is populated directly. TIA Allen On Fri, Aug 29, 2008 at 12:22 PM, Randall Meadows <[EMAIL PROTECTED]>wrote: > On Aug 29, 2008, at 11:38 AM, Allen Curtis wrote: > > I am writing a Cocoa application for accessing a serial device. (IOKit) In >> order to do this, you need to translate between CF and NS data types. (I >> believe) >> >> For instance: >> CFMutableArrayRef devicePaths = CFArrayCreateMutable(NULL, 0, NULL); >> >> GetSerialPortPaths(serialServices, devicePaths); // Fills in >> CFMutableArray >> serialPorts = (NSMutableArray *) devicePaths; >> //CFRelease(devicePaths); >> printf("Found %d serial ports\n", [serialPorts count]); >> >> The problem: I found that if you release the CFMutableArray, you also >> loose >> the NSMutableArray >> > > Yep, because you're merely casting types, you're not creating a new object. > > Question: >> 1. Where can I get a better understanding of the data conversion between >> these different frameworks? >> > > Does < > http://developer.apple.com/documentation/Cocoa/Conceptual/CarbonCocoaDoc/Articles/InterchangeableDataTypes.html> > help? > > 2. Ultimately the device path names will appear in a ComboBox. Was it >> necessary to convert the CFMutableArray to a NSMutableArray for the >> datasource function? >> > > I don't know about "necessary", but it's certainly convenient, because then > you can use the (IMO) more convenient accessors of NSArray. > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]