Class

iOSBlock


Warning

This item was deprecated in version 2021r3. Please use ObjCBlock as a replacement.

Description

Used when callings declares that require Obj-C blocks. An iOSBlock is created from a Delegate and in turn creates an Objective-C block that will call into the delegate. This Objective-C block is retrieved from the Handle property and passed into declares.

Properties

Name

Type

Read-Only

Shared

Handle

Ptr

Methods

Name

Parameters

Returns

Shared

Constructor

theDelegate As Object

Property descriptions


iOSBlock.Handle

Handle As Ptr

Gets the Objective-C block.

This property is read-only.

Method descriptions


iOSBlock.Constructor

Constructor(theDelegate As Object)

Note

Constructors are special methods called when you create an object with the New keyword and pass in the parameters above.

Used to supply the delegate to create for the block.

Sample code

The openURL command can be called with a series of Declares, the last of which requires a Block. Here are the Declares:

Public Function ShowURL(url As String) as Boolean
  ' NSString* launchUrl = @"http://www.xojo.com/";
  ' [[UIApplication sharedApplication] openURL:[NSURL URLWithString: launchUrl]];

  Declare Function NSClassFromString Lib "Foundation" (name As CFStringRef) As Ptr
  Declare Function sharedApplication Lib "UIKit" Selector "sharedApplication" (obj As Ptr) As Ptr
  Dim sharedApp As Ptr = sharedApplication(NSClassFromString("UIApplication"))

  ' https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/#//apple_ref/occ/clm/NSURL/URLWithString:
  Declare Function URLWithString Lib "Foundation" Selector "URLWithString:" ( id As Ptr, URLString As CFStringRef ) As Ptr
  Dim nsURL As Ptr = URLWithString(NSClassFromString("NSURL"), url)

  ' https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/occ/instm/UIApplication/openURL:
  Declare Function openURL Lib "UIKit" Selector "openURL:options:completionHandler:" (id As Ptr, nsurl As Ptr, options As Ptr, handler As Ptr) As Boolean

  Dim b As New iOSBlock(AddressOf URLResult)

  Return openURL(sharedApp, nsURL, Nil, b.Handle)
End Function

Compatibility

iOS projects on the iOS operating system.

See also

Object parent class; Declare command, Ptr data type