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]

Reply via email to