2016-05-22 7 views
-6

私は迅速に新しく、obj-cからsuftにコードを翻訳することはできません。いくつかの文学や助けてください。または迅速Objective - C - > Swift

@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 

Screen of code

答えて

0

でINSTANCETYPEへのアナロジーは、スウィフトのコンベンションでは、ファクトリメソッドを(アップル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 
関連する問題