On Nov 26, 2011, at 4:23 PM, Scott Ribe wrote:
> No, you're not ;-) You read a string that is presumably already Base64
> encoded, then you stuff it into an NSData, then you Base64 encode that, then
> you decode it, leaving you with the original Base64 encoding intact...
>
> Instead of:
>
>> NSData *data = [string dataUsingEncoding:NSASCIIStringEncoding];
>> NSString *base64String = [data base64EncodedString];
>> NSData * base64DecodedData = [NSData dataFromBase64String:base64String];
>
> I think you just need:
>
> NSData * base64DecodedData = [NSData dataFromBase64String:string];
I think you are right. This works (see below). Thanks for pointing (no pun)
that out.
> The actual byte-swapping code looks OK:
>
>> for (n = 0 ; n < (2 * count) ; n++)
>> {
>> ((u_int32_t *) result)[n] = ntohl((u_int32_t) ((u_int32_t
>> *) dataToConvert)[n]);
>> }
>
> Although there's a superfluous cast there that might be a clue that you're
> just slinging code in without understanding it...
I'm pretty sure I messed up something. One of the reasons I posted it here :)
After spitting through the internets, what I am using now is this:
NSData *base64DecodedData = [NSData dataFromBase64String:
@"Q5YIjESWO5JDlpIbRzMVL0OW="];
for (NSInteger n = 0; n < 4; n++)
{
u_int32_t value;
[base64DecodedData getBytes: &value range: NSMakeRange( n*4,
sizeof( u_int32_t ) )];
u_int32_t result = CFSwapInt32HostToBig( value );
NSLog(@"%u", result);
}
This gives:
1133906060
1150696338
1133941275
1194530095
This correspond to the values I am getting using the unpack function in a Perl
script that does what I need, so I think I am on the right track. The perl
script continues with $float = unpack("f", pack("I", $i));, where $i is one of
the four numbers above. This gives the expected values for the floats. So I
may not need the ntohl() function at all.
Now I need to figure out how to go from u_int_32 to float.
- Koen.
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]