diff --git a/bind/genobjc.go b/bind/genobjc.go index d0982207d..818c133c9 100644 --- a/bind/genobjc.go +++ b/bind/genobjc.go @@ -582,6 +582,11 @@ func (s *funcSummary) asSignature(g *ObjcGen) string { } params = append(params, fmt.Sprintf("%s:(%s)%s", key, g.objcType(p.typ)+"* _Nullable", p.name)) } + if len(params) > 0 && params[len(params)-1] == ":(NSError* _Nullable* _Nullable)error" && + (s.ret == "NSData* _Nullable" || s.ret == "NSString* _Nullable") { + // Allow returning nil to Swift. + params = append(params, "__attribute__((swift_error(nonnull_error)))") + } return strings.Join(params, " ") }