コード例 #1
0
        public static void ReleaseNSArrayItems(IntPtr handle)
        {
            uint   count = ObjC.MessageSendUInt(handle, CountSelector.Handle);
            IntPtr obj;

            for (uint num = 0; num < count; num += 1)
            {
                obj = ObjC.MessageSendIntPtr(handle, ObjectAtIndexSelector.Handle, num);
                MessageSend(obj, Selector.ReleaseHandle);
            }
        }
コード例 #2
0
        public static T[] FromNSArray <T>(IntPtr handle) where T : NSObject
        {
            if (handle == IntPtr.Zero)
            {
                return(null);
            }

            uint count = ObjC.MessageSendUInt(handle, CountSelector.Handle);

            T[]    array = new T[count];
            IntPtr obj;

            for (uint num = 0; num < count; num += 1)
            {
                obj             = ObjC.MessageSendIntPtr(handle, ObjectAtIndexSelector.Handle, num);
                array[(int)num] = Runtime.GetNSObject <T>(obj);
            }
            return(array);
        }
コード例 #3
0
        public static string[] FromNSArray(IntPtr handle)
        {
            if (handle == IntPtr.Zero)
            {
                return(null);
            }

            uint count = ObjC.MessageSendUInt(handle, CountSelector.Handle);

            string[] array = new string[count];
            IntPtr   obj;

            for (uint num = 0; num < count; num += 1)
            {
                obj             = ObjC.MessageSendIntPtr(handle, ObjectAtIndexSelector.Handle, num);
                array[(int)num] = FromNSString(obj);
            }
            return(array);
        }