Executes a transform or transform group synchronously.


func SecTransformExecute(_ transformRef: SecTransform, _ errorRef: UnsafeMutablePointer<Unmanaged<CFError>?>?) -> CFTypeRef



The transform to execute.


An optional pointer to a CFErrorRef. This value will be set if an error occurred during initialization or execution of the transform or group. If not NULL the caller will be responsible for releasing the returned CFErrorRef.

Return Value

This is the result of the transform. The specific value is determined by the transform being executed.


There are two phases that occur when executing a transform. The first phase checks to see if tthe ranforms have all of their required attributes set. If a GroupTransform is being executed, then a required attribute for a transform is valid if it is connected to another attribute that supplies the required value. If any of the required attributes are not set or connected then SecTransformExecute will not run the transform but will return NULL and the apporiate error is placed in the error parameter if it is not NULL.

The second phase is the actual execution of the transform. SecTransformExecute executes the transform or GroupTransform and when all of the processing is completed it returns the result. If an error occurs during execution, then all processing will stop and NULL will be returned and the appropriate error will be placed in the error parameter if it is not NULL.

See Also


func SecTransformExecuteAsync(SecTransform, DispatchQueue, SecMessageBlock)

Executes transform or transform group asynchronously.

func SecTransformNoData() -> CFTypeRef

Returns an object from inside a ProcessData override that says that although no data is being returned the transform is still active and awaiting data.

typealias SecMessageBlock

A block that delivers messages during asynchronous operations.