Objective c 目标-C->;迅捷的
请帮助我,我是swift新手,无法将代码从obj-c“翻译”到swift。请给我一些资料或任何帮助。或与swift中INSTANCETYPE的任何类似项Objective c 目标-C->;迅捷的,objective-c,swift,instancetype,Objective C,Swift,Instancetype,请帮助我,我是swift新手,无法将代码从obj-c“翻译”到swift。请给我一些资料或任何帮助。或与swift中INSTANCETYPE的任何类似项 @implementation Message + (instancetype)messageWithString:(NSString *)message { return [Message messageWithString:message image:nil]; } + (instancetype)messageWithStri
@implementation Message
+ (instancetype)messageWithString:(NSString *)message
{
return [Message messageWithString:message image:nil];
}
+ (instancetype)messageWithString:(NSString *)message image:(UIImage *)image
{
return [[Message alloc] initWithString:message image:image];
}
- (instancetype)initWithString:(NSString *)message
{
return [self initWithString:message image:nil];
}
- (instancetype)initWithString:(NSString *)message image:(UIImage *)image
{
self = [super init];
if(self)
{
_message = message;
_avatar = image;
}
return self;
}
@end
Swift的惯例是不翻译工厂方法(看看Apple如何翻译
NSString
)
试试这个:
class Message: NameOfSuperClass {
var message: String
var image: UIImage?
init(message: String, image: UIImage? = nil) {
self.message = message
self.image = image
super.init()
}
}
用法:
let a = Message(message: "Hello world")
let b = Message(message: "Goodbye world", image: anImage) // Assume anImage is defined