iOS上的GCDAsyncUdpSocket丢失了多播数据报

我有一个networking上的设备,通过UDP组播一个非常小的文件。 我正在开发的iOS应用程序负责读取这些数据包,我select使用GCDAsyncUdpSocket来做到这一点。 该文件每半秒发送一次,但我几乎没有收到它(往往每3-10秒接收一次)。 考虑到这可能是设备的问题,我开始使用Wireshark监控stream量。 这似乎反映了我在应用程序中看到的内容,直到我在Wireshark中启用“Monitor Mode”为止,此时每个UDP数据包都被捕获。 此外,iOS模拟器开始接收所有丢失的数据包,因为它与我正在开发的Mac共享网卡。 有没有办法在iOS设备上启用“监视器模式”,或者我缺less一些可以丢失数据包的东西? 我也看到在GCDAsyncUdpSocket中有一个readStream方法。 也许我需要使用这个而不是beginReceiving? 尽pipe如此,我不知道如何在Objective-C中设置stream。 这是我现在的testing代码: – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSLog(@"View Loaded"); [self setupSocket]; } – (void)setupSocket { udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()]; NSError *error = nil; if (![udpSocket bindToPort:5555 error:&error]) { NSLog(@"Error binding […]

返回CATransform3D以将四边形映射到四边形

我试图派生一个CATransform3D,它将一个带有4个angular点的四边形映射到另外一个带有4个新angular点的四边形。 我花了一点时间研究这个问题,看起来步骤包括将原来的Quad转换为Square,然后将Square转换为新的Quad。 我的方法是这样的(从这里借用的代码): – (CATransform3D)quadFromSquare_x0:(float)x0 y0:(float)y0 x1:(float)x1 y1:(float)y1 x2:(float)x2 y2:(float)y2 x3:(float)x3 y3:(float)y3 { float dx1 = x1 – x2, dy1 = y1 – y2; float dx2 = x3 – x2, dy2 = y3 – y2; float sx = x0 – x1 + x2 – x3; float sy = y0 – y1 + y2 – y3; […]

将NSData转换为SecKeyRef

我有一个公共密钥,我从远程服务器收集,我想用该公钥进行RSAencryption。 但问题是我得到公钥数据缓冲区中的字节数组。 我可以将其转换为NSData,但我不能转换为SecKeyRef,所以我可以继续encryption。 我的encryption代码是这样的: +(NSString *)encryptRSA:(NSString *)plainTextString withKey:(SecKeyRef)publicKey { size_t cipherBufferSize = SecKeyGetBlockSize(publicKey); uint8_t *cipherBuffer = malloc(cipherBufferSize); uint8_t *nonce = (uint8_t *)[plainTextString UTF8String]; SecKeyEncrypt(publicKey, kSecPaddingOAEP, nonce, strlen( (char*)nonce ), &cipherBuffer[0], &cipherBufferSize); NSData *encryptedData = [NSData dataWithBytes:cipherBuffer length:cipherBufferSize]; return [encryptedData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; } 正如你所看到的,我需要SecKeyRef对象types来完成我的encryption。 但是我的RSA公钥在NSDatavariables中。 那么如何将NSData转换为SecKeyRef对象types。 提前致谢。

在iOS中捕获Wi-Finetworking更改事件

当用户连接到iOS应用程序中的特定WiFinetworking时,是否有任何方法来捕获事件? 即使可以使用任何不需要超级用户权限(监狱rest)的私人图书馆也可以。 我只想捕捉连接的SSID的变化事件。

检测UITableView单元格中的Tap&Hold

我们如何检测一个UITableViewCell按住?

UIImageViewcaching图像?

也许我会问同样的问题,其他人问(但它没有回应): 加快第一个UIImageViewanimation(强制caching图像) 但是,我的简短问题是: 我在资源中有60个图像,在时间间隔循环中,我要为图像设置animation,每次设置为UIImageView.image资源的第n个图像。 问题是: 第一个animation不好! 当我在同一个UIImageView中再次循环所有图像时,animation是完美的。 我们可以预先在UIImageViewcaching图像吗? 编辑:或者,也许我们可以做一些技巧,使animation顺利?

语言翻译API for iPhone

我想在我的iPhone应用程序中实现语言翻译function,是否有任何API是免费的,我可以使用,或任何其他方式来做到这一点。

ios如何捕捉屏幕的特定部分

我想要捕捉iPhone屏幕的特定部分。 我用UIGraphicsBeginImageContextWithOptions ,但不能捕捉屏幕的一部分。 请帮帮我。

如何解除自己的视图控制器,并在button水龙头中呈现另一个视图控制器?

假设我有3个视图控制器,分别标记为“A”,“B”和“C”。 现在,“A”是窗口的rootViewController,当点击一个button时,它会模式地显示“B”。 在“B”中,当一个button被轻敲时,应该被“A”解散,然后“A”将立即以模态方式呈现。如何做到这一点? 这是我的代码,希望实现这个目标,但我没有成功这样做。 在“A”viewController中,我声明了一个属性,在“B”viewController被“A”解除时,在头文件中保存一个块。 @property (nonatomic, copy) void (^presentZapLaunch)(void); 这是“A”viewController呈现方法呈现“B” -(void)presentNextViewCon { CYCGestureZapZapViewController *gestureViewCon = [[CYCGestureZapZapViewController alloc]init]; if (!self.presentZapLaunch) { __weak CYCZapZapViewController *weakRefCon = self; self.presentZapLaunch = ^{ CYCZapZapViewController *preventWeakRefCon = weakRefCon; CYCZapZapLaunchViewController *zapLaunch = [[CYCZapZapLaunchViewController alloc]init]; NSLog(@"Called"); [preventWeakRefCon presentViewController:zapLaunch animated:YES completion:nil]; }; } [self presentViewController:gestureViewCon animated:YES completion:nil]; } 这是被“A”解雇的“B”解雇方法,“A”应立即出现“C” -(void)presentNextViewCon { NSLog(@"Hello"); [self.presentingViewController […]

UIImagePickerController教程?

我目前正在开发一个应用程序,我需要能够按下一个button打开相机,并拍摄快照,我将附加到.json文件并发送到我的服务器。 我在谷歌和StackOverflowsearch了几个小时,但所有的教程似乎很旧(08'-09')或不符合我的需求。 我知道所有的工作都是用UIImagePickerController类完成的,但是我想要一个工作的例子。 有没有人知道一个很好的教程来开始这样的事情?