[swift-users] print() behavior difference, working as designed.

Dru Satori dru at druware.com
Thu Dec 17 09:30:19 CST 2015


( Oops, hit wrong button )


While working on making some adjustments to code that has been developed for OSX/iOS that would allow it to be portable to Linux, we are seeing a behavior that is causing some confusion. I’m not sure it is a bug, it may well be working as designed.

At issue the following code: (where value is an UnsafeMutablePointer<void> containing a pointer to a MacOSRomanStringEncoding of the string ‘hello’)

let data : NSData = NSData.init(bytes:value, length:len)
		let s : String = String.init(data:data,
			encoding:NSMacOSRomanStringEncoding)!
		print("Value: \(s)")

On OSX, this results in a print of:


Value: hello


While on Linux it results in a print of:

Value: (Foundation.NSData, 30)

Is this an intentional design change, or is our simple test case written wrong, or something equally stupid? 







On 12/17/15, 10:27 AM, "swift-users-bounces at swift.org on behalf of Dru Satori via swift-users" <swift-users-bounces at swift.org on behalf of swift-users at swift.org> wrote:

>While working on making some adjustments to code that has been developed for OSX/iOS that would allow it to be portable to Linux, we are seeing a behavior that is causing some confusion. I’m not sure it is a bug, it may well be working as designed.
>
>At issue the following code: (where value is an UnsafeMutablePointer<void> containing a pointer to a MacOSRomanStringEncoding of the string ‘hello’)
>
>let data : NSData = NSData.init(bytes:value, length:len)
>		let s : String = String.init(data:data,
>			encoding:NSMacOSRomanStringEncoding)!
>		print("Value: \(s)")
>
>
>
>On OSX, this results in a print of:


>
>
>
>
>_______________________________________________
>swift-users mailing list
>swift-users at swift.org
>https://lists.swift.org/mailman/listinfo/swift-users


More information about the swift-users mailing list