Search code examples
stringswiftnsdata

What the correct syntax for StringWithData?


Objective-C:

- (NSString *)stringWithData:(NSData *)data
{
    NSString *result = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding];
    return result;
}

Swift Pattern:

convenience init(bytes bytes: UnsafePointer<Void>, length length: Int, encoding encoding: UInt)

My interpretation:

func stringWithData(data:NSData) -> String {
        let result = NSString.(data:data, length:data.length, encoding:NSUTF8StringEncoding)
    }

I'm getting a compiler error: "Expectant member name followed by '.'"

What am I missing (I'm suspecting it has to do with the 1st parameter)?


Solution

  • From Playground:

    let data = "test".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)! as NSData
    // NSConcreteMutableData
    let result = NSString(data: data, encoding: NSUTF8StringEncoding) // "test"