Swift 函数定义于MySwift.swift
File:
func SomeSwift()
{
}
SomeSwift()
没有在任何 Swift 类中定义,它只是一个纯函数。
After CMD + B to build the project, open Project-Swift.h
, the SomeSwift()
isn't show in there.
Swift 中的函数是否必须在某个 Swift 类中定义?与@objc
marked?
像下面这样:
@objc class SomeSwift: NSObject {
func SomeSwift()
{
}
}
参考苹果文档 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html关于在 Objective-C 中使用 Swift:
Swift 类必须是 Objective-C 类的后代
在 Objective-C 中可访问和使用
意味着你的班级应该是@objc class SomeSwift: NSObject
(你是对的!),但你无法访问整个东西在 Swift 文件中:
当您创建一个继承自 Objective-C 类的 Swift 类时,
类及其成员——属性、方法、下标和
与 Objective-C 兼容的初始化器会自动
可从 Objective-C 获得。这excludes仅限 Swift 的功能,例如
此处列出的:
Generics
Tuples
Swift 中定义的没有 Int 原始值类型的枚举
Swift 中定义的结构
Swift 中定义的顶级函数
Swift 中定义的全局变量
Swift 中定义的类型别名
Swift 风格的变量
嵌套类型
柯里化函数
参考 https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-ID53.
因此,您不能使用SomeSwift
顶级函数。
即使您尝试添加@objc
在声明之前,编译器会告诉您:
@objc 只能在与类成员、@objc 协议和类的具体扩展一起使用时。
并提出删除建议@objc
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)