当我调用readDataOfLength:实例时NSFileHandle,是否需要释放返回的NSData?目前我还没有,但我想摆脱这个挥之不去的疑虑。
我发现这篇文章将 a 转换Int为NSData
它说要这样做:
var foo: Int = 1000
let data = NSData(bytes: &foo, length: sizeof(Int))
Run Code Online (Sandbox Code Playgroud)
Bool我想知道,我是否应该对将 a 转换为同样的想法NSData,如下所示:
var purchase: Bool = true
let data = NSData(bytes: &purchase, length: sizeof(Bool))
Run Code Online (Sandbox Code Playgroud)
就我而言,我总是知道那Bool将是真实的。既然是这种情况,我想知道是否有一种更简单的方法将值“true”转换为对象NSData。
一些背景上下文:
我将此值存储在这个库的NSData钥匙串中。
我还将把该NSData值转换回布尔值NSKeyedUnarchiver.unarchiveObjectWithData
我试图找出更改我拥有的 NSData 对象的字节顺序的最佳方法。
这就是我创建它的方式
NSData *pillowData = [manufData subdataWithRange:NSMakeRange(5, 4)];
Run Code Online (Sandbox Code Playgroud)
这是枕头数据的输出
41543138
Run Code Online (Sandbox Code Playgroud)
这就是我想要的枕头数据在转换后的样子。
38315441
Run Code Online (Sandbox Code Playgroud)
基本上转换为小端。
我正在尝试在钥匙串中保存日期,并且(根据我的理解)这首先需要将Date对象转换为Data对象。
这个 Stack Overflow Q/A解释了如何在 Swift 3 中做到这一点(或至少是其中的一部分),但我希望有人可以提供 Swift 5 中的 to/from 函数(因为该解决方案中至少有一种方法)已被弃用,我担心其他东西也没有经受住时间的考验)。
我每天都在尝试使用牙线,进行锻炼,并确保在保留和释放之间保持平衡.
这让我感到困惑.我有一个伊娃:
NSMutabledata *_alignmentData
Run Code Online (Sandbox Code Playgroud)
以及与之相关的综合属性:
// .h file
@property (nonatomic, retain) NSMutableData *alignmentData;
// .m file
@synthesize alignmentData=_alignmentData;
Run Code Online (Sandbox Code Playgroud)
我开始异步从服务器中提取数据:
self.connection =
[[[NSURLConnection alloc] initWithRequest:theRequest delegate:self] autorelease];
Run Code Online (Sandbox Code Playgroud)
并在分配了一个数据缓冲区后立即在异步回调中使用:
// This prints 0. Cool.
NSLog(@"BEFORE [_alignmentData retainCount] = %d", [_alignmentData retainCount]);
// Create a place to receive the data that will arrive asynchronously:
self.alignmentData = [NSMutableData data];
// This prints 2. Shouldn't this be 1 ?!?
NSLog(@" AFTER [_alignmentData retainCount] = %d", [_alignmentData retainCount]);
Run Code Online (Sandbox Code Playgroud)
为了使在上面分配self.alignmentData之后触发的第一个异步回调中的问题复杂化,我再次检查保留计数:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
// …Run Code Online (Sandbox Code Playgroud) 以下代码生成此生成警告:
NSData可能无法响应'dataWithBase64EncodedString:'
代码:
NSString * message = @"string string string";
NSData *data= [NSData dataWithBase64EncodedString:(NSString *)message];
Run Code Online (Sandbox Code Playgroud)
如何解决此问题以删除此警告?
所有,
这似乎非常简单,但我已经通过URL加载系统程序指南和各种NSURL ....类,但没有找到我的答案.
我只是想从应用程序到网站进行一个简单的电话预订派对点:
NSString *path=[NSString stringWithFormat:@"http://www.myparty123.com/ireservedURL.asp?Nickname=%@&Seat=%i&Email=%@&Currentparty=%i",john,5432,john@yahoo.com,6598];
NSURL* reservationURL =[NSURL URLWithString:path];
NSData *call= [NSData dataWithContentsOfURL:reservationURL];
Run Code Online (Sandbox Code Playgroud)
这似乎是一个简单的方法,但我得到这个警告,我没有使用"调用"变量.使用NSData进行调用似乎有点过分,因为没有数据返回.
然而,创建NSURLRequest并启动NSURLConnection然后使用该请求实现委托似乎也是过度的.
我错过了什么
谢谢九巴
我有一个存储在本地存储上的多页PDF文档.我想从该pdf文档中提取任何页面并将其转换为NSData以将其附加到"MFMailComposeViewController".使用以下代码行,我可以轻松地检索所需的页面...
CGPDFDocumentRef pdfDoc=CGPDFDocumentCreateWithURL(pdfURL);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDoc, pageNumber);
Run Code Online (Sandbox Code Playgroud)
但我无法找到转换pdfPage成的方式,NSData以便我可以用邮件附加它.
注意:要求是以PDF格式附加页面,因此请不要建议将PDF转换为PNG或JPEG.
core-graphics nsdata cgpdfdocument ios mfmailcomposeviewcontroller
我有这个代码下载网址的内容.url的内容只是指向另一个url的链接,因此根本不需要很长时间才能下载:
NSString *additional = @"test string";
NSString *urlString = [NSString stringWithFormat:@"http://tts-api.com/tts.mp3?&return_url=1&q=%@", additional];
NSLog(@"string: %@", urlString);
NSString *modifiedURLString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"modified url string: %@", modifiedURLString);
NSURL *url = [NSURL URLWithString:modifiedURLString];
NSLog(@"url: %@", url);
NSData *data = [NSData dataWithContentsOfURL:url];
NSLog(@"data length: %i", data.length);
Run Code Online (Sandbox Code Playgroud)
数据总是需要大约20秒才能返回,并且它出来的长度总是很小(应该是这样).这是日志:
string: http://tts-api.com/tts.mp3?&return_url=1&q=test string
modified url string: http://tts-api.com/tts.mp3?&return_url=1&q=test%20string
url: http://tts-api.com/tts.mp3?&return_url=1&q=test%20string
data length: 69
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我将附加字符串作为单个单词,例如"test",它可以在几分之一秒内完成.
有多个单词的任何想法都会减慢我的速度?
我从这里得到文件大小:
let docummentdata: NSData = NSFileManager.defaultManager().contentsAtPath(path)!
Run Code Online (Sandbox Code Playgroud)
现在我想要的是docummentdata大小是否大于10MB.我想做点什么,还有别的什么.我试过这样做:
var result: Int = Int(docummentdata.length)
Run Code Online (Sandbox Code Playgroud)
并做到了
if docummentdata.length < 1e+7{
print("compared")
}
else
{ print("not compared")
}
Run Code Online (Sandbox Code Playgroud)
我得到了这样的东西
二元运算符<不能应用于Int和Double类型的操作数 如何比较字节和执行程序?
nsdata ×10
ios ×6
objective-c ×4
swift ×3
iphone ×2
cocoa ×1
endianness ×1
keychain ×1
mfmailcomposeviewcontroller ×1
nsfilehandle ×1
nsurlrequest ×1
release ×1
retain ×1
swift5 ×1
url ×1