我正在尝试构建 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];
}