Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 7+中的Base64解码;_Ios_Objective C_Swift_Ios7_Ios8 - Fatal编程技术网

iOS 7+中的Base64解码;

iOS 7+中的Base64解码;,ios,objective-c,swift,ios7,ios8,Ios,Objective C,Swift,Ios7,Ios8,我使用iOS7中添加的NSData类新API对文本(NSString)进行了编码 用这个 - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; 这是我的密码 NSString *base64EncodedString = [[myText dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0]; NSLog(@"%@", base64E

我使用iOS7中添加的
NSData
类新API对文本(
NSString
)进行了编码

用这个

- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding;  
这是我的密码

NSString *base64EncodedString = [[myText dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0];

NSLog(@"%@", base64EncodedString);
我想解码它

Swift 3+ 编码 解码
Swift<3 编码 解码
目标-C 编码 解码

如果您想编写回退代码,从一开始就在iOS中出现了从base64解码的情况,请注意
NSURL

NSURL *URL = [NSURL URLWithString:
      [NSString stringWithFormat:@"data:application/octet-stream;base64,%@",
           base64String]];

return [NSData dataWithContentsOfURL:URL];

m_EncodeText
:请停下来,您在哪里找到了
base64EncodedStringWithOptions:
?@user2159978它在apple文档中,似乎在我使用mac os控制台应用程序目标时发生了这种情况。或者旧版本的sdk/mac os targetI不认为这段代码是干净的。我收到警告:“不兼容的指针类型初始化NNSTring,表达式为NSData”@drlobo您必须键入base64EncodedDataWithOptions:而不是base64EncodedStringWithOptions:谢谢。我刚刚发现:常数
kNilOptions
等于0,可以说比使用0作为选项可读性更强。@AdamWaite
kNilOptions
是在
MacTypes.h
中定义的,它是一个传统的OSX头,所以我不喜欢使用它,因为我认为应该从iOS SDK中完全删除该头。无论如何,你有理由说它可读性很强,所以请随意使用它。如果有人得到零,请尝试
NSDataBase64DecodingOptions。忽略未知字符
我有这个问题,我对这个答案印象深刻。多年来,我一直在使用一些荒谬的代码来解码字符串,一直以来都有一个两行的解决方案。这太棒了!哈奇,但很棒:)我从来没想过这么简单!谢谢
let plainData = plainString.data(using: .utf8)
let base64String = plainData?.base64EncodedString()
print(base64String!) // Zm9v
if let decodedData = Data(base64Encoded: base64String!),
   let decodedString = String(data: decodedData, encoding: .utf8) {
  print(decodedString) // foo
}
let plainString = "foo"
let plainData = plainString.dataUsingEncoding(NSUTF8StringEncoding)
let base64String = plainData?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
print(base64String!) // Zm9v
let decodedData = NSData(base64EncodedString: base64String!, options: NSDataBase64DecodingOptions(rawValue: 0))
let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding)
print(decodedString) // foo
NSString *plainString = @"foo";
NSData *plainData = [plainString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64String = [plainData base64EncodedStringWithOptions:0];
NSLog(@"%@", base64String); // Zm9v
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"%@", decodedString); // foo 
NSURL *URL = [NSURL URLWithString:
      [NSString stringWithFormat:@"data:application/octet-stream;base64,%@",
           base64String]];

return [NSData dataWithContentsOfURL:URL];