有没有人知道如何将NSDictionary对象转换为NSData对象作为plist而不先保存字典?我希望我的iPhone应用程序发送一封电子邮件,其中包含附有我的字典的plist.我目前正在使用skpsmtpmessage http://code.google.com/p/skpsmtpmessage/来发送电子邮件.
提前致谢
我正在尝试在不同的iPhone上运行的两个相同的应用程序之间进行一些图像编辑同步.我想将NSSet*从一个设备发送到另一个设备(我想这涉及封装在NSData中)然后将其解密回NSSet,然后在touchesMoved类型的函数中使用它.这是可行的,还是我应该同步UIImages?我担心UIImage同步对于实时交互会有太多的延迟.
谢谢你的帮助!
NSData + dataWithContentsOfURL默认有任何缓存吗?有没有人用这种方法试验过某种问题,从网上获取数据的最有效方法是什么?
我的代码目前正在使用什么:
我从照片库中选择了JPG或PNG(使用标准的ImagePicker方法),并使用以下方法将该图像转换为NSData:
self.myImageData = UIImageJPEGRepresentation(myImage, 0.9);
Run Code Online (Sandbox Code Playgroud)
然后我使用multipart/form-data将其发布到服务器.
我现在想要为GIF做同样的事情,同时保留原始的GIF数据(以便动画GIF进入图书馆,恢复出来仍然是动画).
在didFinishPickingMediaWithInfo中,我可以使用原始GIF的URL
self.myGIFURL = [info objectForKey:UIImagePickerControllerReferenceURL].
Run Code Online (Sandbox Code Playgroud)
这是一个可能让我得到的例子:
资产库://asset/asset.GIF ID = 1000000034&EXT = GIF
以下是我现在尝试将此GIF推送到NSData的两种方法,每次myImageData显示(null).
我试过使用initWithContentsOfURL:
NSData *dataFromGIFURL = [[NSData alloc] initWithContentsOfURL: myGIFURL];
self.myImageData = dataFromGIFURL;
[dataFromGIFURL release];
Run Code Online (Sandbox Code Playgroud)
然后我尝试将NSURL转换为initWithContentsOfFile的字符串:
NSString *stringFromURL = [NSString stringWithFormat:@"%@", myGIFURL];
NSData *dataFromGIFURL = [[NSData alloc] initWithContentsOfFile: stringFromURL];
self.myImageData = dataFromGIFURL;
[dataFromGIFURL release];
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢.
NSData datawithcontentsofurl是否有超时期限?
我从XML文件中获取数据,并将其存储在NSData对象中.我想将NSData转换为NSDictionary并将该数据存储在plist中.
我的代码如下:
NSURL *url = [NSURL URLWithString:@"http://www.fubar.com/sample.xml"];
NSData *data = [NSData dataWithContentsOfURL:url];
NSLog(@"%@", data);
Run Code Online (Sandbox Code Playgroud)
要转换数据,我使用:
- (NSDictionary *)downloadPlist:(NSString *)url {
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
NSURLResponse *resp = nil;
NSError *err = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&resp error:&err];
if (!err) {
NSString *errorDescription = nil;
NSPropertyListFormat format;
NSDictionary *samplePlist = [NSPropertyListSerialization propertyListFromData:responseData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&errorDescription];
if (!errorDescription)
return samplePlist;
[errorDescription release];
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我怎么做?
所以我很难理解某些东西.这是我对NSURSession的理解:
一般来说,我有2个选项(据我所知)DataTask(ex dataTaskWithRequest)和DownloadTask(ex DownloadTaskWithRequest) - 使用他们的委托方法,或使用完成处理程序,不能两者兼顾.我已经设法使用dataTaskWithRequest接收DATA,如下所示:
let request = NSMutableURLRequest(URL: dataSourceURL!)
request.HTTPMethod = "POST"
let postString = "lastid=\(id)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
println("error=\(error)")
return
}
if data != nil {
println("works")
//Handle data
}
//println("response = \(response)")
}
task.resume()
Run Code Online (Sandbox Code Playgroud)它完美地运作.问题是我需要将数据下载到磁盘而不是下载到内存(我正在下载图像).所以我尝试使用DownloadTaskWithRequest +他的完成处理程序,我注意到他所采用的参数是相同的,期望第一个是NSURL,而DataTaskWithRequest是NSData,因此它使事情变得非常简单.恩.
let task2 = NSURLSession.sharedSession().downloadTaskWithRequest(request, completionHandler: { (location : NSURL!, response : …Run Code Online (Sandbox Code Playgroud) 我有一个iOS应用程序(用Swift编写),它以JSON格式从wcf服务中检索数据.其中一个数据是存储为base64string的图像.但是,我无法将base64string转换为NSData.
我的主要目的是将base64string一直转换为blob,以便我可以将其保存在数据库中.另一方面,如果您知道至少部分内容(例如从base64string到NSData)会有所帮助.
以下代码将为您提供我的表的想法
let ItemsDB = Table("Items")
let idDB = Expression<String>("ID")
let nameDB = Expression<String>("Name")
let catDB = Expression<String>("Category")
let uomDB = Expression<String>("UOM")
let priceDB = Expression<Double>("Price")
let imageDB = Expression<Blob>("Image")
let actDB = Expression<Bool>("Active")
Run Code Online (Sandbox Code Playgroud) Swift 提供Data和[UInt8]类型,它们的作用非常相似。
此代码不再适用于Swift 3.
imageData = NSData(base64EncodedString: mediaFile, options: NSDataBase64DecodingOptions.fromRaw(0)!)
Run Code Online (Sandbox Code Playgroud)
这是一个.
imageData = NSData(base64EncodedString: mediaFile, options: .allZeros)
Run Code Online (Sandbox Code Playgroud)