Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标-C->;迅捷的_Objective C_Swift_Instancetype - Fatal编程技术网

Objective c 目标-C->;迅捷的

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

请帮助我,我是swift新手,无法将代码从obj-c“翻译”到swift。请给我一些资料或任何帮助。或与swift中INSTANCETYPE的任何类似项

@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