我有一个文件路径,我需要在NSData中获取该文件的数据.我在用:
NSError *err = nil;
NSData *d = [NSData dataWithContentsOfFile:file options:nil error:&err];
NSLog(@"error: %@", err);
Run Code Online (Sandbox Code Playgroud)
错误是:
Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)" UserInfo=0x34a8f0 {NSFilePath=file://localhost/var/mobile/Applications/A19223D4-0AEF-4677-8EDD-0D2CA9A7BB73/Documents/12-03-25%2022:10:48--cc.mp4, NSUnderlyingError=0x34a560 "The operation couldn’t be completed. No such file or directory"}
Run Code Online (Sandbox Code Playgroud)
但文件/目录确实存在,因为我正在播放视频文件,它工作得很好:
MPMoviePlayerViewController *controller = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:[video filepath]]];
[self presentMoviePlayerViewControllerAnimated:controller];
Run Code Online (Sandbox Code Playgroud)
出了什么问题?谢谢
我正在尝试清理一些现有的代码,这些代码从服务器中以块的形式下载大文件,检查每个50个数据包的校验和,然后将它们拼接在一起.我有一些麻烦,看看它是否是最有效的方式,因为内存问题,它现在崩溃了一段时间.如果我没有校验和,它似乎没有崩溃,但我希望我能先检查我的文件.
@property (nonatomic, retain) NSMutableData * ReceivedData;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSData *sequencePacketData = [[NSData alloc] initWithData:self.ReceivedData];
[self ProcessPacket:sequencePacketData];
[sequencePacketData release];
[[NSNotificationCenter defaultCenter] postNotificationName:DownloadNotification object:self];
}
- (void)ProcessPacket:(NSData *)sequencePacketData {
// find the directory I need to write to and the name of the file
NSString *currentChecksum = [WebServiceManager MD5CheckSumForNSData:sequencePacketData];
BOOL checkSumValid = [dmgr ValidateChecksum:currentChecksum againstFileName:self.CurrentFileName];
self.IsSuccessful = checkSumValid;
if (!checkSumValid) {
// log error msg
return;
}
if (success)
{
NSFileHandle *handle = [NSFileHandle fileHandleForUpdatingAtPath:sequencePath];
[handle seekToEndOfFile];
[handle writeData:sequencePacketData]; …Run Code Online (Sandbox Code Playgroud) 请检查这里是我的代码
int asciiCode = @"29 78 D8 BB 35 12 63 D5 C3 4B 18 D5 52 6B C2 83";
NSString *strings = [NSString stringWithFormat:@"%c", asciiCode];
NSLog(@"%c",strings);
}
Run Code Online (Sandbox Code Playgroud)
如果值为29 78 D8 BB 35 12 63 D5 C3 4B 18 D5 52 6B C2 83它应显示为india是我的字符串值,但它显示为)xÿª5c'√K'Rk¬É
我使用coredata创建了几个应用程序,我在sqlite中存储图像,但在某个地方我发现它很糟糕.我搜索了网,但我找到的只是这个建议:
所以我的问题是:在sqlite db中保存图像的优点和缺点是什么NSData,并且在图像保存在文件系统中时只存储图像的引用?
我有一个NSdata(License_Data <0d2b3931 39323433 37363637 36360c79 70617963 6173682d 50445301 0010322d 22772a17 24599e96 88be9991 b2410106>)喜欢这个
当我在00之后将其转换为char时,它没有取任何值
0010322d
Char*c = [Lincense_Data bytes];
什么方法除了这个甚至零也是什么,任何人请帮助???
我已经归档了一个 NSColor 以将它存储在 NSUserDefaults 中:
var data = NSArchiver.archivedDataWithRootObject(NSColor.redColor())
storage.setObject(data, forKey: "color")
storage.synchronize()
Run Code Online (Sandbox Code Playgroud)
但是现在我需要从 NSData 取回颜色,我不知道该怎么做
data 从网站下载,
NSString * html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
html是nil,但是
NSString * html = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)
会有内容。由于网站包含汉字,如果使用Ascii,则无法显示中文。我猜网站中有一些无效的 UTF-8,所以第一个代码不起作用。
是否有任何方法可以继续使用 UTF-8 但忽略一些无效错误?
我正在尝试将通过蓝牙连接获得的 NSData 类型的 6 字节十六进制转换为适当的整数值。我知道这是 Big Endian 类型,我需要转换为 little Endian。但是,每次我尝试转换它时,我都可以提取正确的数据,但结果看起来不对,请参阅下面的操场代码:
var newdata = NSData(bytes: [0x26, 0x01, 0x45, 0x01, 0x04, 0x5e, ] as [UInt8], length:6)
//var timeData = newdata.subdataWithRange(NSMakeRange(4,2))
//var heelData = newdata.subdataWithRange(NSMakeRange(2,2))
//var frontData = newdata.subdataWithRange(NSMakeRange(0,2))
var timeData:UInt16 = 0
var heelData:UInt16 = 0
var frontData:UInt16 = 0
//var timeData = data.subdataWithRange(NSMakeRange(4,2))
var timeIn: NSNumber = NSNumber(unsignedShort: 0)
newdata.getBytes(&timeIn, range: NSRange(location: 4,length: 2))
timeData = CFSwapInt16BigToHost(timeIn.unsignedShortValue)
//24068
var heelIn: NSNumber = NSNumber(unsignedShort: 0)
newdata.getBytes(&heelIn, range: NSRange(location: 2, length: 2))
heelData …Run Code Online (Sandbox Code Playgroud) 我使用这个alamofire请求获取pdf文件,我想将其保存为NSData:
func makeDataCall(urlString: String, completionHandler: (responseObject: NSData?, error: NSError?) -> ()) {
//Perform request
Alamofire.request(.GET, urlString, headers: ["Authorization": auth])
.responseData { request, response, responseData in
print(request)
print(response)
print(responseData)
completionHandler(responseObject: responseData.data, error: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
在响应中,我得到了这个:
"Content-Length" = 592783;
"Content-Type" = "application/pdf";
Run Code Online (Sandbox Code Playgroud)
但是responseData.data没有.
我究竟做错了什么?
当我从中读取数据时,请使用以下代码说出http://www.weather-forecast.com/:
let urlContent = NSString(data: data!, encoding: NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
urlContent数据显示为"°"。您如何将其转换为“°”(即度数符号)?
nsdata ×10
ios ×5
objective-c ×4
swift ×4
iphone ×3
alamofire ×1
bluetooth ×1
char ×1
cocoa-touch ×1
core-data ×1
encoding ×1
endianness ×1
hex ×1
macos ×1
nscolor ×1
nsstring ×1
nsurl ×1
uiimage ×1
web-services ×1
xcode ×1