Exemple #1
0
        internal unsafe static void WithArray(Guid [] uuids, string argName, Action <NSArray> action)
        {
            if (uuids == null)
            {
                throw new ArgumentNullException(argName);
            }
            var ptrs = new IntPtr [uuids.Length];

            for (int i = 0; i < uuids.Length; i++)
            {
                var ba = uuids [i].ToByteArray();
                ptrs [i] = CFUUID.CFUUIDCreateWithBytes(IntPtr.Zero, ba [0], ba [1], ba [2], ba [3], ba [4],
                                                        ba [5], ba [6], ba [7], ba [8], ba [9], ba [10], ba [11], ba [12], ba [13], ba [14], ba [15]);
            }
            using (var arr = NSArray.FromIntPtrs(ptrs))
                action(arr);

            foreach (var h in ptrs)
            {
                if (h == IntPtr.Zero)
                {
                    continue;
                }
                CFObject.CFRelease(h);
            }
        }