设置NSStreamNetworkServiceTypeBackground "在幕后做什么"?
我有一个内部应用程序(不适用于iPhone商店的发行,因此不受Apple批准),它需要在运行时保持少数TCP和UDP套件的绑定. 在测试时,我注意到我的界套接字有些奇怪的行为 - 每当设备入睡时,它都会关闭.例如,当您在手机顶部压下电源按钮时,就会发生这种情况,而我真的不希望它这样做.更不用说这似乎是对BSD插座API合同的严重违反. 插座代码全部写在C中,因此不使用Objective-C nsstream 库. 我注意到,有多种方法可以为VoIP,音乐流和其他事物等插座打开. NSStream文档本身列出了NSStreamNetworkServiceTypeBackground属性,它似乎可以帮助我的应用程序在手机入睡时保持其套接字打开. Apple文档的底部列出了以下属性: 常数 NSStreamNetworkServiceTypeVoIP 指定流提供VoIP服务. NSStreamNetworkServiceTypeVideo 指定流 正在提供视
28 2024-04-08
编程技术问答社区
iOS5故事板错误。故事板在iOS4.3及之前的版本中不可用
我已经构建了一个使用故事板的小应用程序,而且运行良好.就在最终测试之前,我决定尝试一下它是否在iOS 4.3上运行.我单击了项目设置中的灰色5.0,然后选择了4.3. 该应用程序无法使用以下错误消息构建: 故事板在iOS 4.3和先验 上不可用 iPhone和iPad的故事板都告诉我. 当我切换回ios5目标时,我仍然会从两个故事板中遇到这些错误,并且产品不会构建! 我检查了:项目设置中的iOS部署目标为5.0 目标应用程序部署目标为5.0 构建设置使用iOS 5.0 SDK 我还需要做什么才能将项目恢复到可建造的状态?这是一个全新的错误还是我忘记了什么? 更新:即使进行清洁,我仍会遇到此错误. 我将计划中的调试器更改为" LLDB",并进行了其他清洁,该项目现在构建和编译 解决方案 我也遇到了这个问题,最后我通过以下过程解决了这一点: 打开xxxxxx.storyboard 在Xcode的正确视图中打开身份和键入选项卡. 将文档版本中
18 2024-04-04
编程技术问答社区
iOS中的UIWebView缓存
我在应用程序中托管UIWebView.它看起来像UIWebView缓存图像和数据本身. 我想在应用启动上清除其缓存. 清理野生动物园的缓存无济于事.我发现冲洗UIWebView的缓存的唯一方法是关闭iPhone并再次将其打开.关闭应用程序也无济于事. Apple文档对此一无所知...或我缺少一些东西.以防万一,使用单触摸创建应用. 解决方案 如果要消除所有缓存的响应,那么类似的方式看起来像是要走的方式: [[NSURLCache sharedURLCache] removeAllCachedResponses]; 其他解决方案 有一个 view 缓存显示了最后一页的位图(就像我们在Safari中看到的一样),但这看起来并不像您所看到的(因为它需要重新启动设备). 我以前没有注意到这种行为(也从未寻找过;-)但是以下答案看起来很有希望. fwiw这不是单触摸特定的东西. 其他解决方案 ive尝试了堆栈溢出的所有建议,但它们都没有起作用.我
20 2024-04-04
编程技术问答社区
在iOS 5 Safari中,当导航返回/卸载事件未触发时,页面缓存出现问题
tl; dr - iOS 5上的野生动物园非常艰难,它打破了我的网站. 我在iOS 5中的Safari浏览器处理后向前缓存的方式苦苦挣扎,他们称之为" Page Cache".它的描述方式在这里行为很好. 很简单,页面缓存使其制成,所以当您离开页面时,我们会"暂停"它,当您回来时,我们按" play". 这在整个网站中引起了问题.使用后按钮时,大多数其他浏览器都会向您显示已加载的状态页面.不是iOS 5上的Safari,它向您展示了您上次留下的页面.一个简单的示例是禁用提交按钮.如果我使用JavaScript禁用提交按钮,请提交表格,当您单击"提交"按钮时,仍将被禁用.在其他浏览器(包括Safari的桌面版本)中,这是一个问题,但是通过将Onload事件处理程序设置为空白功能来解决.我相信这告诉浏览器使缓存无效,因为该功能可能发生了重要的事情.此黑客似乎在iOS 5上对Safari不起作用. 下面的问题归结为裸露的必需品.加载test.html时,您会看到文本"原
30 2024-04-04
编程技术问答社区
为什么我的xcode在设置断点时跳到汇编视图?
当我尝试与断点进行调试时,无论代码哪一行,它都会跳到汇编视图.我想要当前源线的亮点! 如何配置它? 解决方案 这有时是一个有用的功能,但很容易关闭: Debug > Debug Workflow > Always Show Disassembly 在Xcode的较旧版本中( Product > Debug Workflow > Show Disassembly When Debugging 其他解决方案 我在Xcode 6.1中遇到了同样的问题,并通过以下内容解决了它: 调试 - >调试工作流 - >取消选中总是显示拆卸 确保"始终显示拆卸"是未选中的 其他解决方案 您可以尝试此 产品>调试>创建符号断点
16 2024-04-03
编程技术问答社区
BOOL方法在块内不返回YES
我创建了一种返回bool的新方法,如下所示. +(BOOL)checkIfGameAlreadyExistsAgainst:(PFUser *)opponentUser { // Find all the games where the current user is user1 and the opponentUser is user2 PFQuery *currentUserIsUser1 = [PFQuery queryWithClassName:@"Game"]; [currentUserIsUser1 whereKey:kMESGameUser1 equalTo:[PFUser currentUser]]; [currentUserIsUser1 whereKey:kMESGameUser2 equalTo:opponentUser]; [currentUserIsUser1 whereKey:kMESGameIsActive eq
18 2024-04-01
编程技术问答社区
如何在客观的C类中设置一个布尔类型的属性
如何在目标C类中使用布尔属性,我喜欢: @property (nonatomic, copy) BOOL *locationUseBool; ,但会出现错误: 带有"复制"属性的属性必须是对象类型的. 声明的正确方法是什么? 解决方案 您也可以以这种方式声明. @property (assign) BOOL locationUseBool; 基本上,如果您说非原子,并且使用@synthesize生成登录器,则如果多个线程尝试一次更改/读取属性,则可能发生不良.您可以获得部分编写的值或过度发布/保留对象 在多线程程序中,无法部分中断原子操作,而非原子操作可以. 其他解决方案 @property (nonatomic, assign) BOOL locationUseBool; 否星号,没有副本,没有保留. 其他解决方案 这个对我有用. @property (nonatomic) BOOL locationUseBool
20 2024-04-01
编程技术问答社区
iOS和蓝牙低能耗
我知道,在iOS方面,蓝牙有很多限制.我想要一些有关蓝牙低能(LE)和CoreBluetooth Framework Apple提供的iOS 5.0及更大的信息. 我可以使用Core蓝牙框架将任何蓝牙LE设备连接到iOS设备? 生产中是否有蓝牙LE设备,它带有三个轴加速度计和我可以像人类界面设备一样使用的陀螺仪? 解决方案 萨加尔,也许您可​​以说明您想做什么. 任何BT4.0 LE设备都可以使用CoreBluetooth框架与iOS应用程序进行连接和通信. CC2540开发套件确实包含一个具有加速度计的FOB,它没有陀螺仪. 该套件随附的USB加密狗用于与PC/Mac与FOB通信,您不需要与iOS设备进行通信.
28 2024-04-01
编程技术问答社区
从后台的iOS应用程序与BTLE设备进行通信
在iOS 5的背景下,如何与启用的BTLE设备进行通信? 解决方案 我上周有同样的问题(问题),有人给了我答案.这是可能的,为此,您需要将以下设置添加到您的Info.plist文件: uibackgroundModes(或必需的背景模式) - >"蓝牙中心" 其他解决方案 这并不是您每个问题的答案,但是我正在考虑做同样的事情并发现以下要求(这使我远离使用): 这是iOS 5.0 SDK 的一部分 支持仅适用于蓝牙4.0设备,即iPhone 4S,仅适用于支持该设备的设备.因此可以连接到蓝牙4.0标准. 仅供参考. 一些
18 2024-04-01
编程技术问答社区
CoreBluetooth-can connectPeripheral be called multiple times
应用程序可以尝试一次连接到多个设备吗? 当应用调用" ConnectPeripheral"时,由于没有超时时间,它将尝试使用未指定的时间连接.但是,如果第二次称为" connectperipheral",它是否取消了上一个呼叫,还是该应用程序尝试一次进行两个单独的连接? 解决方案 在我的测试中,我已经看到您是否在连接之前多次调用它,它将需要更长的时间才能实际连接(并且通常实际上阻止连接发生),但通常在此之后正常起作用. 但是,我注意到的一件事是,如果您尝试在didConnectPeripheral:回调的内部调用connectPeripheral:,您将使自己陷入无限的循环中,以不断返回didConnectPeripheral:>一遍又一遍地. 长话短说,如果您不希望这样的不确定行为发生,则每个单个connectPeripheral:应与cancelPeripheralConnection:(或didDisconnectPeripheral:)呼叫匹配.
24 2024-04-01
编程技术问答社区
有界和无界设备的区别是什么?
我是iOS和BLE的新手,如果这个问题非常基本,请对我很高兴. 边界设备和无界设备之间的区别是什么?我正在使用CBCentralManager在iOS中使用CBCentralManager,并试图弄清楚如何通过CBCentralManager配对它们. 解决方案 您不需要执行任何其他应用程序,如果需要,iOS将处理绑定. 有限的连接在某种程度上"配对"到iOS设备.一旦界定,他们将不会与任何其他设备通信.边界由操作系统(IOS)控制.当需要有界连接的设备与iOS设备通信时,iOS设备会提示视图,询问您是否希望连接到设备. 无界设备不断广播其服务,并允许任何iOS设备连接到它.该设备将不会绑定到特定的iOS设备,并且可以在另一个时间自由连接到另一个iOS设备.这是大多数BT4.0传感器的正常/推荐方法. 在这两种情况下,应用程序通常都会存储UUID,以便下次可以建立与同一设备的连接. 注意:尽管无界设备与iOS设备没有"配对",但它们只能与单个iOS设
18 2024-04-01
编程技术问答社区
iPhone 4S-BLE数据传输速度
我最近一直在修补BLE(蓝牙低能)连接类,这是一个安静的安静,并且无法使其比1KB/5秒更快地传输数据.我相信,在文档中,它说最大速度为每20毫秒60个字节.通过数据传输并计算每组数据包后的ACK传输,我相信我们应该能够速度达到每秒1.5kb的速度.因此,我的代码比应该慢的7-8倍. 我只是想知道是否有人能够像文档所说的那样快地进行数据传输.如果我的速度比我的速度快? 非常感谢 解决方案 请参阅Apple的指南,您会看到需要一个连接更新请求以加快您的连接. /p> 我有最低= 20ms最大40 ms 我希望我能帮助 罗马 其他解决方案 如果您能够使用更高的MTU尺寸(由iOS协商),那么您将能够增加带宽,因为有一个4个字节L2CAP标头和一个3个字节ATTER,可以将其' t比一个数据包更多地传输. 如果您能够传输6个数据包PR连接间隔,那么您将能够将每个连接间隔35个字节放入35个字节(7个字节标头仍将用于第一个数据包))MTU大小
24 2024-04-01
编程技术问答社区
CoreBluetooth: 唯一的UUIDs的寿命是多少
关注此问题: corebluetooth,如何获得唯一的uuid? 连接到外围设备后,我可以检索其CFUUIDRef,这是唯一的,并且可以使用retrievePeripherals重新连接.但是,我发现关闭应用程序后无法使用它来重新连接. 在连接之后仅在应用程序的寿命上有效的连接后生成的唯一UUID还是我们应该能够保存它以供以后使用?我正在尝试让我的应用程序记住一个特定的外围设备,但是除了peripheral.UUID之外,我不知道其他任何唯一标识符. 解决方案 长话短说,是的,即使关闭应用程序,您也可以使用UUID重新连接到同一设备(完全按照您说的方式). 我认为,您实际上并没有与外围配对.那是一个大问题.您需要实际建立配对请求并获取外围物以显示在蓝牙表中.然后,UUID将使用iOS设备固化,并将保留,直到您冲洗iOS设备的网络设置为止. 另一种可能性是您的BLE设备有一个固件问题,在断开连接后,它会迫使自己进入广告模式或其他东西.这也将使您重新连接的
14 2024-04-01
编程技术问答社区
有没有办法用iPhone读取非苹果蓝牙设备的数据?
我真的在这个主题上搜索了一段时间.特别是当iOS 3是iPhone上的最新软件版本时. 我想知道是否有可能使用SDK通过蓝牙将iPhone连接到外部设备并检索测量的数据? 感谢您的帮助! 问候! 玛丽 解决方案 如果蓝牙设备可以伪装为蓝牙键盘,则可以将数据发送到编码为击键的iOS设备. 如果蓝牙设备是或可以伪装成耳机,则它可以通过音频调制方案(例如FSK)发送编码的数据.匹配的调制解调器/编解码器将需要在iOS应用中运行. 对于最新的iOS设备(4S),您可以使用新的蓝牙LE协议发送数据(除非您在Apple的NDA MFI程序中,否则应用程序较旧的蓝牙数据通信协议无法使用). > 其他解决方案 您必须查看 mfi program apple是因为您想要自己设备通信.尽管您必须注册/付款,但它提供了与iPhone一起使用外部配件的支持.
14 2024-04-01
编程技术问答社区
除了6个配置文件(HFP、PBAP、A2DP、AVRCP、PAN、HID),iOS中是否有支持的蓝牙配置文件?
是否有ios5中使用的任何支持的蓝牙配置文件(HFP,PBAP,A2DP,AVRCP,PAN,HID)? 我可以将SPP(序列端口配置文件)用作开发iPhone应用吗? 解决方案 如果要使用串行端口配置文件(SPP),则需要申请MFI或使用MFI认证的设备与iOS通信. 这是MFI链接 https://develoveler.apple.apple.com/programs/mfigrams/mfi/ 除了上述配置文件外,ios6还支持 . 您可以在此链接下找到受支持的配置文件 http://support.apple.com/kb/ht3647
42 2024-04-01
编程技术问答社区
iPhone在重新连接时不能发现蓝牙LE标签上的服务
我正在研究iOS的蓝牙LE应用程序.我正在使用iOS中的核心蓝牙框架来处理所有通信. 问题和描述: 尽管我使用单个标签,尽管连接和断开了许多连接,但单个标签会无缝连接,手机会发现IT服务. 另外,当多个蓝牙LE标签首次连接时,它们会无缝连接并发现他们的服务. 当标签断开连接然后重新连接到手机时,标签连接正常.但是两个标签之一(一个)似乎并没有宣传其服务.即,当应用程序打开并重新连接时, Discoverservices 方法不调用 diddiscoverservices 委托. 为什么仅在与多个设备连接时发生这种情况. 我已经正确设置了 expheral.delegate .我已经尝试了所有事情,包括重复连接,重复的Discoverservices调用标签.似乎没有任何作用. 如何将连接到手机多个标签并仍然发现所有服务. 请帮助 谢谢, manju 解决方案 事实证明,我在" diddiscoverCharacteristics
12 2024-04-01
编程技术问答社区
iOS 5.1通过BluetoothManager切换蓝牙
我想尝试蓝牙管理器.但是我在阅读和测试所有条目后真的很困惑. 首先,我在 中找到 Xcode/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/PrivateFrameworks/BluetoothManager.framework 所需的框架.但是那里只有binarie文件.因此,我添加了一个"标头"文件夹,然后放置 bluetoothmanager.h 文件中的文件. 在我的项目中,我添加了此框架,但是找不到任何bluetoothmanager.h文件,所以我会出错,如果使用 #import "BluetoothManager.h" 或 #import 我想使用以下代码开始BT: - (BOOL)application:(UIAp
26 2024-04-01
编程技术问答社区
卓悦不在BT上做广告
过去一周左右,我一直在猛击这个问题.我已经经历了以下资源: stackoverflow:无游戏套的蓝牙bonjour? (3844189) stackoverflow:Bonjour在蓝牙工作(3350094) 如何 stackoverflow:使用iOS Gamekit的"蓝牙bonjour"与其他平台(8070998) 技术问答QA1753-苹果开发人员 WITAP样本应用程序 srvresolver样本应用程序 dnssdobjects示例应用程序 我使用的是Mac OS 10.7,Xcode 4.5,带有iOS 6的iPhone 4和带有iOS 5.1.1的iPad 1. 我的问题是:我正在修改一个应用程序,该应用程序当前使用GameKit的同行选择器在iPad和IP {Hone | OD touch}之间连接.我们要修改它以在蓝牙上使用Bonjour,因为如果连接丢失,我们在使用GameKit重新连接设备方面存在问题.我已经使用DNS_SD.H A
22 2024-04-01
编程技术问答社区
寻找触手可及的通用蓝牙设备
我们正在使用iOS私人框架蓝牙管理器进行一个简单的实验 - 找到可发现的 generic (non-ios)BT设备.现在,只有以下行返回设备: for(BluetoothDevice* device in [[BluetoothManager sharedInstance] pairedDevices]) 不幸的是,它仅返回已经配对的设备,这不是我们想要的.使用connectingDevices而不是pairedDevices根本不返回任何设备.那么,我们必须能够检测到触手可及的任何蓝牙设备哪些选择?我认为我不能使用GameKit,因为我想发现非OIS设备. 欢迎任何建议. 解决方案 我已经弄乱了几天的私人框架,并且获得附近设备的列表非常简单. 首先,您必须使用: 启用设备扫描 [[BluetoothManager sharedInstance] setDeviceScanningEnabled:YES]; 如果范围内有设备,它将开始发布蓝牙删除
32 2024-04-01
编程技术问答社区
iOS核心蓝牙不要求配对
在我最近的项目中,我需要传达一个硬件(蓝牙低能).我已经实施了所有代表方法代码.我能够连接硬件和设备,但是我没有得到配对警报(附加的屏幕截图).为什么不要求配对?谢谢. #import "BTWCentralConnectionManager.h" @implementation BTWCentralConnectionManager @synthesize cbcManager; @synthesize discoveredPeripheral; @synthesize findMeServiceCharacteristic; @synthesize findMeService; @synthesize delegate=_delegate; static NSString *kFindMeServiceUUID=@"1802"; static NSString *kFindMeCharacter
20 2024-04-01
编程技术问答社区