我开始学习Objective-C,我尝试用GCC(GNUStep)在Debian Wheezy上编译这段代码:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *base64String = @"SGVsbG8gV29ybGQh";
NSURL *URL = [NSURL URLWithString: [NSString stringWithFormat:@"data:;base64,%@", base64String]];
NSData *decodedData = [NSData dataWithContentsOfURL:URL];
NSLog(@"%@", decodedData);
[pool drain];
return 0;
}
它编译得很好,但是每次运行应用程序时它都会返回“null”,我尝试了不同的解决方案(将NSData转换为NSString),但是它也没有吐出解码后的字符串。
我的代码或GNUStep环境有问题吗?
答案 0 :(得分:0)
基本上,您传递的网址应指定读取数据的有效位置。因此,如果您只想将字符串转换为数据,请遵循以下内容: -
NSData* decodedData = [ base64String dataUsingEncoding:NSUTF8StringEncoding];