【发布时间】:2020-10-28 10:58:57
【问题描述】:
我是 swift 和客观的 C 编程语言的新手。我有点困惑,因为我必须将代码从目标 C 迁移到 swift。
Objective C 代码如下:
- (name *)initWithString:(NSString *)name num:(NSNumber *)num {
self = [super init];
if (self) {
self.name = name;
self.num = num;
}
return self;
}
+ (instancetype)initWithString:(NSString *)name num:(NSNumber *)num {
return [[self alloc] initWithString:name num:num] ;
}
从我的理解到现在,我已经来到了swift的这一部分:
func init(name: String?, num: NSNumber?) {
super.init()
self.name = name
self.num = num
return self
}
class func init(name: String?, num: NSNumber?) -> Self {
return self.init(name: name, num: num)
}
但是,我仍然对如何将 initWithString 转换为 swift 初始化程序感到困惑。从文档中,我只得到了它的基本语法。
- 如何解决这个问题?
- initWithString 和普通 init 有什么区别?
- 我认为
-表示实例方法,+表示静态方法。有人可以简要介绍一下吗?
【问题讨论】:
-
我建议您阅读Swift Programming Language 这本书来帮助您快速入门。并且不要过多关注 Objective-c 代码,而是专注于 swift。
-
是的,我做到了,我注意到用 init 编写 func 的错误,那是我的错。我找不到我们不必添加@DavidPasztor 回答中提到的静态方法。
标签: objective-c swift function initialization