---
title: "perform(_:with:)"
framework: objectivec
role: symbol
role_heading: Instance Method
path: "objectivec/nsobjectprotocol/perform(_:with:)"
---

# perform(_:with:)

Sends a message to the receiver with an object as the argument.

## Declaration

```swift
func perform(_ aSelector: Selector!, with object: Any!) -> Unmanaged<AnyObject>!
```

## Parameters

- `aSelector`: A selector identifying the message to send. If aSelector is NULL, an doc://com.apple.documentation/documentation/Foundation/NSExceptionName/invalidArgumentException is raised.
- `object`: An object that is the sole argument of the message.

## Return Value

Return Value An object that is the result of the message.

## Discussion

Discussion This method is the same as perform(_:) except that you can supply an argument for aSelector. aSelector should identify a method that takes a single argument of type id. For methods with other argument types and return values, use NSInvocation.

## See Also

### Related Documentation

- [method(for:)](objectivec/nsobject-swift.class/method(for:).md)

### Sending Messages

- [perform(_:)](objectivec/nsobjectprotocol/perform(_:).md)
- [perform(_:with:with:)](objectivec/nsobjectprotocol/perform(_:with:with:).md)
