The current iOS binding generator only generates returns if the function being bound does not return an error. If a second error return type is also present, the binder always generates both the primary as well as the error as an output parameter. This is undersirable because most decent functions in Go will also return errors, so all of those get converted to plain methods iOS side, each of them requiring allocating the return variable first and only then execute the call. This gets even more annoying with the Swift error wrapping protocol which converts errors to throw statements automatically, but which still needs the ugly pre- allocs caused by the genrated bindings not returning the result, just placing it in an output argument. This CL changes that so that if a nullable result is being returned by a bound method from Go, then it is generated as a proper return and not an output argument. This allows erroring functions to still be called as a function in ObjC, and even more elegantly drop even the error part in Swift. Change-Id: I35152d7d2fd2a132eba836fa23be8fd4f317f097 Reviewed-on: https://go-review.googlesource.com/34072 Reviewed-by: Elias Naur <elias.naur@gmail.com>
33 lines
712 B
Plaintext
33 lines
712 B
Plaintext
// Objective-C API for talking to issue12403 Go package.
|
|
// gobind -lang=objc issue12403
|
|
//
|
|
// File is generated by gobind. Do not edit.
|
|
|
|
#ifndef __GoIssue12403_H__
|
|
#define __GoIssue12403_H__
|
|
|
|
@import Foundation;
|
|
#include "GoUniverse.h"
|
|
|
|
|
|
@protocol GoIssue12403Parsable;
|
|
@class GoIssue12403Parsable;
|
|
|
|
@protocol GoIssue12403Parsable <NSObject>
|
|
- (NSString*)fromJSON:(NSString*)jstr;
|
|
- (NSString*)toJSON:(NSError**)error;
|
|
@end
|
|
|
|
@class GoIssue12403Parsable;
|
|
|
|
@interface GoIssue12403Parsable : NSObject <goSeqRefInterface, GoIssue12403Parsable> {
|
|
}
|
|
@property(strong, readonly) id _ref;
|
|
|
|
- (instancetype)initWithRef:(id)ref;
|
|
- (NSString*)fromJSON:(NSString*)jstr;
|
|
- (NSString*)toJSON:(NSError**)error;
|
|
@end
|
|
|
|
#endif
|