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); } }
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); }
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); }