示例#1
0
        public unsafe virtual void SetCallback(XMUtilityCallback callback)
        {
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            BlockLiteral *block_ptr_callback;
            BlockLiteral  block_callback;

            block_callback     = new BlockLiteral();
            block_ptr_callback = &block_callback;
            block_callback.SetupBlock(static_InnerXMUtilityCallback, callback);

            if (IsDirectBinding)
            {
                MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr(this.Handle, selSetCallback_, (IntPtr)block_ptr_callback);
            }
            else
            {
                MonoTouch.ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr(this.SuperHandle, selSetCallback_, (IntPtr)block_ptr_callback);
            }
            block_ptr_callback->CleanupBlock();
        }
示例#2
0
		public unsafe virtual void SetCallback (XMUtilityCallback callback)
		{
			if (callback == null)
				throw new ArgumentNullException ("callback");
			BlockLiteral *block_ptr_callback;
			BlockLiteral block_callback;
			block_callback = new BlockLiteral ();
			block_ptr_callback = &block_callback;
			block_callback.SetupBlock (static_InnerXMUtilityCallback, callback);
			
			if (IsDirectBinding) {
				MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (this.Handle, selSetCallback_, (IntPtr) block_ptr_callback);
			} else {
				MonoTouch.ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr (this.SuperHandle, selSetCallback_, (IntPtr) block_ptr_callback);
			}
			block_ptr_callback->CleanupBlock ();
			
		}