在iPhone App中如何存储UIImage转换为NSData到BLOB数据类型的sqlite表?是否需要任何类型的绑定(NSData- > Blob)?
要么
在NSData以sqlite Blob数据类型检索以表单形式存储的图像时,我是否需要执行任何任务来将blob数据类型中存储的数据库转换回NSData形式?
请帮助和建议.
我有一个NSData对象,首先我想将NSData对象转换为字节,然后读取此NSData对象中的前四个字节,然后将前四个字节转换为它们的等效整数值.关于如何解决这个问题的任何想法?
如何将所有四个字节转换为单个正整数值?
我正在使用dataWithBytesNoCopy:length:方法来创建NSData对象bytes.
-(NSData *)dataFromBytes
{
...
void *data = malloc(bytes);
...
return [NSData dataWithBytesNoCopy:data length:bytes];;
}
Run Code Online (Sandbox Code Playgroud)
从苹果文档:
返回的对象获取字节指针的所有权,并在取消分配时释放它.
我应该在调用函数中释放返回数据对象吗?
-(void)testFunction
{
NSAutoreleasePool *nsp = [[NSAutoreleasePool alloc] init];
NSData *ldata = [mObject dataFromBytes];
NSlog(@"%@", ldata)//printing data
[nsp release];
NSlog(@"%@", ldata)//Not printing data //sometimes getting exc_bad_access
}
Run Code Online (Sandbox Code Playgroud) 有关Apple的文档NSData说
NSData它的可变子类NSMutableData为字节缓冲区提供数据对象,面向对象的包装器.数据对象允许简单分配的缓冲区(即没有嵌入指针的数据)采用Foundation对象的行为.
"嵌入式指针"是什么意思?我的理解是,一旦你把字节放入其中,它就不知道它是什么,除非你在应用程序级解码它.谁知道他们在说什么?
我正在开发一个在Android和iOS设备上运行的应用程序.对于这个应用程序,我需要从URL获取XML流.这个XML并不是很安全,因为有些行,例如:
启示
会变成 :
Rvlation
当然,我知道最好的办法是修复XML生成器脚本.但我只是作为一家公司的开发人员而无法访问它,所以目前我正在努力做我能做的事情.
现在这是本主题的原因.当我将这些数据放在Objective-C的NSData对象中时:
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
Run Code Online (Sandbox Code Playgroud)
然后尝试读取每个字节:
NSUInteger len = [data length];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);
for(int i = 0 ; i < len ; i++)
{
NSLog(@"%d",byteData[i]);
}
Run Code Online (Sandbox Code Playgroud)
它正确显示char的int值,是否为特殊字符.然后我只需要(unichar)byteData[i]解决它.
没有Java和Android,我正在尝试做一个基本的BufferedReader操作.
URL myURL = new URL(url);
BufferedReader in = new BufferedReader(new InputStreamReader(myURL.openStream()));
Run Code Online (Sandbox Code Playgroud)
然后逐个打印每个char的int:
int i;
while((i = in.read()) != -1) System.out.print(i);
Run Code Online (Sandbox Code Playgroud)
但是使用Java,通过这样做,我立即得到替换char的id(65533)而不是好的id,并且无法设法替换它.
任何的想法?谢谢你读我
我使用BTLE将数据写入外设的一个特性.我想发送一个NSDictionary特征.由于有超过BTLE发送的130个字节的数据的限制,我想压缩的一种有效的方式NSDictionary进入NSData,然后跨过发送.我使用的是超出限制的下面一段代码.有任何想法吗?
NSDictionary *aDict = @{ @"Value1": @"sadsadasdasdsadqwwqsadasd",
@"Value2": @"10",
@"Value3": @"12" };
NSData *aData = [NSKeyedArchiver archivedDataWithRootObject:aDict];
NSLog(@"Data Size = %@",
[NSByteCountFormatter stringFromByteCount:aData.length
countStyle:NSByteCountFormatterCountStyleFile]);
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我试图存档一个NSAttributedString对象,所以我NSData使用以下代码成功将其转换为对象:
NSData *attrStrData = [attrStr dataFromRange:NSMakeRange(0, attrStr.length) documentAttributes:NULL error:nil];
Run Code Online (Sandbox Code Playgroud)
现在我想将此NSData对象转换回来NSAttributedString.我相信OSX你有一些方法,但有没有iOS?我找到了NSAttributedString+Encoding,但似乎对它的支持较少,而且没有CocoaPods.欢迎任何建议.
我有一个NSMutableData,我用它的方法创建子数据,以获取我将创建的整数的确切字节.但不知何故,我无法将该字节转换为整数.在我调试时似乎没问题,我将子数据值看作"<04 00 00 00>" - 我需要转换 - .
var lengthData:NSData = buffer.subdataWithRange(NSMakeRange(12,4))
var length:Int = //Conversion which must be done from lengthData
var dataPart:NSData = buffer.subdataWithRange(NSMakeRange(16, length))
Run Code Online (Sandbox Code Playgroud)
我试图将lengthData转换为NSString并获取它的整数值,但没有成功.你能帮忙解决这个转换吗?提前致谢.
我正在尝试保存从 Parse.com 检索的图像,如下所示:
let userImageFile = object["Image"] as PFFile
userImageFile.getDataInBackgroundWithBlock {
(imageData: NSData!, error: NSError!) -> Void in
if error == nil {
image = UIImage(data:imageData)
let imageToSave:NSData = UIImagePNGRepresentation(image)
self.saveImage(intRandomNumb, retImage: imageToSave)
}
}
Run Code Online (Sandbox Code Playgroud)
saveImage 函数如下所示:
func saveImage(imagepath:Int, retImage:NSData){
println("image is being saved")
let defaults = NSUserDefaults.standardUserDefaults()
let imagePathName = "\(imagepath)"
defaults.setObject(retImage, forKey: imagePathName)
}
Run Code Online (Sandbox Code Playgroud)
后来,我试图像这样显示这个图像:
var point = gestureRecognizer.locationInView(self.tv)
if let indexPath = self.tv.indexPathForRowAtPoint(point)
{
let data = mainList[indexPath.row] as SecondModel
let fileRef = data.fileReference
let intFileRef = …Run Code Online (Sandbox Code Playgroud) 我知道这个问题已经被要求了ObjectiveC,但我Swift还没有足够强大的音译char *bytes.
所以给定
let string = "600DBEEF"
Run Code Online (Sandbox Code Playgroud)
如何创建NSData代表这4个字节的数字:60 0D BE EF?
nsdata ×10
objective-c ×6
swift ×3
cocoa ×2
ios ×2
iphone ×2
blob ×1
cocoa-touch ×1
encoding ×1
hex ×1
integer ×1
ios7 ×1
ipad ×1
java ×1
nsdictionary ×1
sqlite ×1
string ×1
swift2 ×1
uiimageview ×1
xcode ×1