Tag: nsdata

如何识别出现为空括号的空NSData对象?

我正在处理Game Kit的GKTurnBasedMatch类中的腐败问题(请参阅此线程 ),有时会导致游戏状态无效,并且matchData损坏。 所以作为一个解决方法,我正在创build一个方法来识别这些无效匹配,所以我可以适当地处理它们。 损坏的matchData似乎是一个很好的方法来做到这一点。 但是,到目前为止,我一直无法识别他们。 当我这样做: // "match" is an existing GKTurnBasedMatch object NSLog(@"match data is: %@",[match matchData]); NSLog(@"match data is nil? %@",[match matchData] == nil ? @"YES" : @"NO"); NSLog(@"match data equals empty nsdata? %@",[match matchData] == [NSData data] ? @"YES" : @"NO"); 我得到以下内容: match data is: <> match data is nil? NO […]

如何将Int转换成Swift中的NSData?

在Objective-C中,我使用下面的代码来 将一个Intvariables转换为一个字节的数据包NSData 。 int myScore = 0; NSData *packet = [NSData dataWithBytes:&myScore length:sizeof(myScore)]; 使用转换的NSDatavariables到一个方法。 [match sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error: &error]; 我试图将Objective-C代码转换成Swift: var myScore : Int = 0 func sendDataToAllPlayers(packet: Int!, withDataMode mode: GKMatchSendDataMode, error: NSErrorPointer) -> Bool { return true } 但是,我不能将一个Intvariables转换成一个NSData并使用它的方法。 我怎样才能做到这一点?

将传入的NSStream转换为视图

我正在成功发送一个NSData的stream。 下面的委托方法是获取该stream并附加到NSMutableData self.data。 如何获取这些数据,并将其制作成一个UIView / AVCaptureVideoPreviewLayer(应该显示video)? 我觉得我错过了另一个转换,AVCaptureSession> NSStream> MCSession> NSStream>? – (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { switch(eventCode) { case NSStreamEventHasBytesAvailable: { if(!self.data) { self.data = [NSMutableData data]; } uint8_t buf[1024]; unsigned int len = 0; len = [(NSInputStream *)stream read:buf maxLength:1024]; if(len) { [self.data appendBytes:(const void *)buf length:len]; } else { NSLog(@"no buffer!"); } // Code […]

如何在KB中获取UIImage的大小?

有没有办法从一个UIImage,而不是从didFinishPickingMediaWithInfo获取该图像的KB文件大小? 所呈现的图像来自相册。 我试过下面的代码,但是这给出了以下结果: 图像的大小KB:0.000000 – (void)setImage:(UIImage *)image { _image = image; self.imageView.image = image; } – (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self setupView]; self.backgroundColor = [UIColor whiteColor]; panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(beingDragged:)]; [self addGestureRecognizer:panGestureRecognizer]; // prepare image view self.imageView = [[UIImageView alloc]initWithFrame:self.bounds]; self.imageView.clipsToBounds = YES; self.imageView.contentMode = UIViewContentModeScaleAspectFill; [self addSubview:self.imageView]; NSData […]

错误域= NSCocoaErrorDomain代码= 512“操作无法完成。操作无法完成。是一个目录

我想使用writeToFile来存储一个图片的文件,但find下面的错误,如何解决它? 错误域= NSCocoaErrorDomain代码= 512“操作无法完成。(cocoa错误512.)”{NSFilePath = /用户/ alexqdh /图书馆/应用程序支持/ iPhone模拟器/ 6.0 /应用程序/ xxx /文件/ girl.png ,NSUnderlyingError = 0x753e630“操作无法完成,是一个目录”} -(NSString*)getImagePath:(NSString *)name { NSArray *path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docPath = [path objectAtIndex:0]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *finalPath = [docPath stringByAppendingPathComponent:name]; [fileManager createDirectoryAtPath:finalPath withIntermediateDirectories:YES attributes:nil error:nil]; return finalPath; } //below is how to use NSData writeToFile […]

来自摄像机video的数据返回零

这是我从UIImagePickerController获取video的代码: – (IBAction)takeVideo:(UIButton *)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.allowsEditing = YES; picker.sourceType = UIImagePickerControllerSourceTypeCamera; picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil]; [self presentViewController:picker animated:YES completion:NULL]; } – (void)viewDidAppear:(BOOL)animated { self.movieController = [[MPMoviePlayerController alloc] init]; self.movieController.controlStyle = MPMovieControlStyleNone; [self.movieController setContentURL:self.movieURL]; [self.movieController.view setFrame:CGRectMake (15, 125, 292, 390)]; self.movieController.view.backgroundColor = […]

JSON格式:以正确的顺序获取输出

常见任务,将string转换为JSON格式。 是的,容易,StackOverflow关于这个的很多答案。 不容易的是,我明白为什么我得到的顺序不同于我把对象放在NSDictionary中的顺序。 这是我写的代码: -(NSString*)createJSONstring { //http://www.raywenderlich.com/5492/working-with-json-in-ios-5 NSDictionary* dictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"<xx3-xxxx>",@"from", @"<xxx-xxx>",@"to", @"<Bla bla bla>",@"message", @"<2000>",@"posixtime", nil]; NSArray* notifications = [NSArray arrayWithObjects:dictionary, nil]; NSError *writeError = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:notifications options:NSJSONWritingPrettyPrinted error:&writeError]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"JSON Output: %@", jsonString); return jsonString; } 我希望得到这样的东西: { "from" : "<xx3-xxxx>" […]

UIDocumentInteractionController日历访问

我有一个ics(日历)文件,我打开一个UIDocumentInteractionController ,使用presentOptionsMenuFromRect: 运行时,“Open In”菜单看起来像这样 。 正如你所看到的,没有“添加到日历”选项。 这是什么让我:我使用.vcf(联系人卡)文件相同的确切代码,并按预期与“打开联系人”选项可用。 我是否在Info.plist缺less日历访问权限? 为什么UIDocumentInteractionController不能UIDocumentInteractionController处理.ics文件types,但.vcf工作得很好? 这两种文件types非常相似。 从选项菜单中,如果我把ics文件邮寄给我自己,并从邮件应用程序中打开它,它就会读取它,并且可以将事件添加到我的日历中,所以我知道这些数据是有效的。 我search了一个解决scheme的高和低,没有人似乎知道为什么日历访问不起作用。 我遇到的一些问题仍未得到答复: 无法将ics文件添加到日历 我怎样才能让UIDocumentInteractionController显示日历作为打开一个.ics文件的选项? 如果苹果故意这样做,我能想到的唯一原因是他们宁愿开发人员使用EventKit将事件添加到日历。 如果属实,那么这个解决scheme是相当令人沮丧 任何有关这个问题的见解将不胜感激。

检查NSData是否包含ASCII或UTF8编码

我正在检索包含UTF8或ASCII编码文本的HTML。 对于最常见的使用,它是ASCII解码,可以正确显示文本: NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]; 现在我有另一个UTF8编码的HTML页面,所以我必须使用: NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 加载网站时,我检索什么样的编码是随机的。 我的问题是,有没有办法来检查NSData什么样的解码是正确的使用? 所以我知道我需要使用哪种编码types。 日Thnx!

为什么AES128解密在iPhone上花了这么长时间?

我解密从PHP服务器发送的图像。 我正在使用CryptoSwift库来解密图像,图像作为NSData进来,解密后,我从NSData创build一个UIImage。 但解密需要大约1分10秒,这很慢。 图像数据的大小: println(imageData.length) result: 32592 我相信这不是一个大文件吗? 这是我用来解密图像数据的代码: let aes = AES(key: keyData, iv: ivData, blockMode: .ECB) let decryptedData = aes?.decrypt(encryptedSnap, removePadding: true) let image = UIImage(data: decryptedData!) 我试过在不同的线程上运行这个进程,但是它给出了相同的结果。 当我解密图像时,模拟器使用100%的CPU,大约21.5MB的RAM。 任何帮助表示赞赏,谢谢!