【发布时间】:2016-01-27 23:39:31
【问题描述】:
给定以下目标 c 代码
Class className = NSClassFromString(@"EKAttendee");
id attendee = [className new];
swift 代码是什么?
【问题讨论】:
标签: objective-c macos swift2
给定以下目标 c 代码
Class className = NSClassFromString(@"EKAttendee");
id attendee = [className new];
swift 代码是什么?
【问题讨论】:
标签: objective-c macos swift2
这是一个简单的例子,展示了如何使用NSClassFromString:
if let clazz = NSClassFromString("NSView") as? NSView.Type {
let v = clazz.init(frame: NSRect(x: 0, y: 0, width: 100, height: 100))
print(v.frame) // (0.0, 0.0, 100.0, 100.0)
}
【讨论】:
试试https://objectivec2swift.com/#/converter/code
我把这个复制进去了
Class className = NSClassFromString(@"EKAttendee");
id attendee = [className new];
我拿回了这个
var className: AnyClass = NSClassFromString("EKAttendee")
var attendee: AnyObject = className()
【讨论】:
这行得通。
let anyObjectType : AnyObject.Type = NSClassFromString("EKAttendee")!
let nsObjectType : NSObject.Type = anyObjectType as! NSObject.Type
var attendee: AnyObject = nsObjectType.init()
print("\(attendee)")
结果
EKAttendee <0x51763530>
email : (null)
isCurrentUser : 0
replyRequested : 0
role : (null)
status : (null)
type : 0
scheduleForceSend : 0
【讨论】: