Accept ObjC API wrapper types as arguments and return values from bound Go package functions and methods. Also, allow Go structs to extend ObjC classes and implement ObjC protocols as well as override and implement methods. This is the third and final part of the implementation of the golang/go#17102 proposal. Fixes golang/go#17102 Change-Id: I601d90fb6d22b8d6f8b7d5fe0130daa1a4dd4734 Reviewed-on: https://go-review.googlesource.com/29175 Reviewed-by: David Crawshaw <crawshaw@golang.org>
40 lines
754 B
Go
40 lines
754 B
Go
// Copyright 2014 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package objc
|
|
|
|
import (
|
|
"ObjC/Foundation"
|
|
"ObjC/UIKit"
|
|
)
|
|
|
|
type GoNSDate struct {
|
|
Foundation.NSDate
|
|
this Foundation.NSDate
|
|
}
|
|
|
|
func (d *GoNSDate) Hash(this Foundation.NSDate) int {
|
|
return 0
|
|
}
|
|
|
|
type GoNSObject struct {
|
|
C Foundation.NSObjectC // The class
|
|
P Foundation.NSObjectP // The protocol
|
|
}
|
|
|
|
func (o *GoNSObject) Description(this Foundation.NSObjectC) string {
|
|
return ""
|
|
}
|
|
|
|
func DupNSDate(date Foundation.NSDate) Foundation.NSDate {
|
|
return date
|
|
}
|
|
|
|
type GoUIResponder struct {
|
|
UIKit.UIResponder
|
|
}
|
|
|
|
func (r *GoUIResponder) PressesBegan(_ Foundation.NSSet, _ UIKit.UIPressesEvent) {
|
|
}
|