如何检查 NSData 是字符串还是图像数据,我有接收服务器可以得到 2 种类型的数据是字符串和 UIImage 数据。如何检查数据是字符串还是图像数据。提前致谢。
- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
switch (eventCode) {
case NSStreamEventOpenCompleted: {
NSLog(@"NSStreamEventOpenCompleted");
} break;
case NSStreamEventHasBytesAvailable: {
if(!self.data) {
self.data = [[NSMutableData alloc] init];
}
while (self.networkStream.hasBytesAvailable) {
uint8_t buf[1024];
NSInteger len = 0;
len = [self.networkStream read:buf maxLength:1024];
if(len>0) {
[self.data appendBytes:(const void *)buf length:len];
// bytesRead is an instance variable of type NSNumber.
self.bytesRead += len;
}else{
}
}
// Event when read input stream done
if (!self.networkStream.hasBytesAvailable) {
[self _didReceiveDataString:self.data];
}
}
}
最佳答案
同意 rmaddy 的观点。但是在字符串之前检查图像,因为图像数据可能返回一个有效的字符串。
if ([UIImage imageWithData:data])
{
// get image
}else if ([[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding])
{
// get string
}
关于ios - 如何检查 NSData 是字符串还是图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27231368/