NSData
Converting NSData to HEX string
Section titled “Converting NSData to HEX string”NSData can be represented as hexadecimal string, similar to what it outputs in its description method.
extension NSData {
func hexString() -> String { return UnsafeBufferPointer<UInt8>(start: UnsafePointer<UInt8>(bytes), count: length) .reduce("") { $0 + String(format: "%02x", $1) } }
}Objective-C
Section titled “Objective-C”@implementation NSData (HexRepresentation)
- (NSString *)hexString { const unsigned char *bytes = (const unsigned char *)self.bytes; NSMutableString *hex = [NSMutableString new]; for (NSInteger i = 0; i < self.length; i++) { [hex appendFormat:@"%02x", bytes[i]]; } return [hex copy];}
@endCreating NSData objects
Section titled “Creating NSData objects”Using a file
Section titled “Using a file”let data = NSData(contentsOfFile: filePath) //assuming filePath is a valid pathObjective-C
Section titled “Objective-C”NSData *data = [NSData dataWithContentsOfFile:filePath]; //assuming filePath is a valid pathUsing a String object
Section titled “Using a String object”let data = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding) //assuming string is a String objectObjective-C
Section titled “Objective-C”NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; //assuming string is a String objectConverting NSData to other types
Section titled “Converting NSData to other types”To String
Section titled “To String”let string = String(NSString(data: data, encoding: NSUTF8StringEncoding)) //assuming data is a valid NSData objectObjective-C
Section titled “Objective-C”NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; //assuming data is a valid NSData object[string release];To Array
Section titled “To Array”let array = data.bytes as! NSMutableArray //assuming data is a valid NSData objectObjective-C
Section titled “Objective-C”NSMutableArray *array = (NSMutableArray *)[data bytes]; //assuming data is a valid NSData objectTo Bytes Array
Section titled “To Bytes Array”let bytesArray = data.bytes as! UInt8 //assuming data is a valid NSData objectObjective-C
Section titled “Objective-C”UInt8 *bytesArray = (UInt8 *)data.bytes; //assuming data is a valid NSData object