public void RetrievePeripherals(CBUUID [] peripheralUuids) { if (peripheralUuids == null) { throw new ArgumentNullException("peripheralUuids"); } var ptrs = new IntPtr [peripheralUuids.Length]; for (int i = 0; i < peripheralUuids.Length; i++) { using (var s = new NSString(peripheralUuids[i].ToString(true))) ptrs [i] = CFUUID.CFUUIDCreateFromString(IntPtr.Zero, s.Handle); } using (var arr = NSArray.FromIntPtrs(ptrs)) RetrievePeripherals(arr); foreach (var p in ptrs) { CFObject.CFRelease(p); } }