没有可见的 @interface 'NSData' 声明选择器 'initWithBase64Encoding:



我正在尝试构建 xcode,但我不断遇到这个问题

No visible @interface for 'NSData' declares the selector 'initWithBase64Encoding:' 

No visible @interface for 'NSData' declares the selector 'base64Encoding'

我到处找过,但我的问题没有明确的解决方案。这些是给我带来问题的原因:

- (NSString*)stringFromImage:(UIImage*)image 
  {
      if(image) 
      {
          UIImage* convertImage = [GameUtility imageWithImage:image scaledToSize:CGSizeMake(80, 80)];
          NSData *dataObj = UIImageJPEGRepresentation(convertImage, 30);
          return [dataObj base64Encoding];
      }
      return @"";
  }
- (UIImage*)imageFromString:(NSString*)imageString 
  {
       NSData* imageData =[[NSData alloc] initWithBase64Encoding:imageString];
       return [UIImage imageWithData:imageData];
  }

如果您的目标是OS X 10.9或iOS 7,则可以使用base64EncodedStringWithOptions:方法对字符串进行编码,并使用initWithBase64EncodedString:options:方法对字符串进行解码。

如果您的目标是更早的平台,则需要自己编写这些方法或找到为您实现它们的库(作为NSData的类别方法)。对于这些方法,不同的库将具有不同的名称,因此请确保检查该库的文档或检查标头。

您可以先像这样将图像转换为字符串。然后,您可以尝试将UIImage转换为NSData然后使用encodeBase64WithData将该数据转换为字符串

NSString * Image = [self encodeBase64WithData:[imageDict objectForKey:@"Image"]];

然后尝试像这样串UIImage

[UIImage imageWithData: [self decodeBase64WithString:[registerDataDict objectForKey:@"Image"]]];

希望对您有所帮助

使用此 base64 文件进行编码和解码

- (NSString*)stringFromImage:(UIImage*)image 
   { 
      if(image) 
      { 
          UIImage* convertImage = [GameUtility imageWithImage:image scaledToSize:CGSizeMake(80, 80)]; 
          NSData *dataObj = UIImageJPEGRepresentation(convertImage, 30); 
          return [dataObj base64EncodedString]; 
       } 
      return @""; 
   } 
 - (UIImage *)imageFromString:(NSString*)imageString 
   { 
      NSData* imageData =[imageString base64DecodedData]; 
      return [UIImage imageWithData:imageData]; 
   } 

最新更新