Reputation: 27123
I have an objective-c method:
-(DeviceVar *)var:(NSString*)valid
In objective-c I simple use it as:
DeviceVar* rtc = [device var:@"rtc"];
But in swift I have a problem using this method:
let rtc = device.var("etc")
as var is a keyword I guess, so my question is how to make it work.
Upvotes: 5
Views: 512
Reputation: 539715
You can always enclose a reserved word in backticks if you need to use it as a method name (see for example Use reserved keyword a enum case):
let rtc = device.`var`("etc")
If you have write access to the Objective-C header files then another option is to define a different method name for Swift (compare Swift and Objective-C in the Same Project in the "Using Swift with Cocoa and Objective-C " reference):
-(DeviceVar *)var:(NSString*)valid NS_SWIFT_NAME(deviceVar(_:));
which can then be called from Swift as
let rtc = device.deviceVar("etc")
Upvotes: 11