因此,我将块操作存储到NSMutabledictional中,然后在响应返回Websocket时回忆起它们.这将异步请求变成块语法.这是剥离的代码: - (void)sendMessage:(NSString*)message responseAction:(void (^)(id))responseAction { NSString *correlationID = (NSString*)[[message JSONValue] objectForKey:@"correlationId"]; [self.messageBlocks setObject:responseAction forKey:correlationID]; NSLog(@"Sending message: %@", correlationID); [webSocket send:message]; } - (void)webSocket:(SRWebSocket *)ws
以下是关于 cocoa-touch 的编程技术问答
我很高兴.这是我第一次试图安装此功能,我必须这样做,因为我需要小马调试器工作. Undefined symbols for architecture i386: "_utf8_countTrailBytes", referenced from: _validate_dispatch_data_partial_string in libSocketRocket.a(SRWebSocket.o) "_utf8_nextCharSafeBody", referenced from: _validate_dispatch_data_partial_string in libSocketRocket.a(SRWebSocket.o) ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see i
我很好奇你们中大多数人都采用哪种策略来建立与模型层次结构相对于模型层次结构的稳固的iPhone客户端.我所说的模型层次结构是我有一个REST服务器,其中几个资源相互关联.例如,假设我有一台REST服务器,它吐出有关学校的信息.如果我想抓住特定课程中的所有学生,我首先需要查询REST服务器中的信息,然后我需要查询服务器以获取有关学校必须提供的所有课程的信息,然后是随后对特定班级的所有学生的要求.归根结底,客户将带来3种独特的XML树.那时,你们中的大多数人是否编写自己的算法来构建最终成为您数据源的最终树?您不是在这方面汇总XML树,而是使用其他方法? 您如何希望在服务器上获取无数相关的资源,并将它们放入一棵树上,而这些树是有意义的? 感谢您的见解. 解决方案 您选择如何在iPhone上存储管理模型数据的方式可能取决于您要处理的XML数据可能会有所不同,以及它可能会变化. 如果这是一个简单的XML模型,它不太可能更改,并且不会随身携带太多冗余信息,那么您可能会做得很
通过iPhone学习连接到SSL Web服务的最佳起点是什么? 到目前为止,我通过肥皂在HTTP上进行了一些基本连接.但是我在HTTPS上没有经验.任何良好的资源,教程,首先参考,"使用nsurl ... class" s s mevely 解决方案 其他解决方案 我正在发布示例https客户端.如果服务器证书无效,它会忽略. 该服务器具有带有UriteMplate =用户名({usercode})/password({passcode}) 的webget方法 您可以使用Charlesproxy检查您的传出消息 #import "Hello_SOAPViewController.h" @interface NSURLRequest (withHttpsCertificates) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; + (void)setAllowsAnyHTTPSCertific
嗨,我是iOS中的新手,我正在尝试使用JSON从Web服务中获得响应,但会发生以下错误.请帮助我解决它. 错误域= nscocoaerrordomain代码= 3840"操作不可能是 完全的. (可可错误3840.)"(JSON文本不是从数组开始或 允许未设置片段的对象和选项.)userInfo = 0x7fd30bee0f70 {nsdebugdescription = json文本不是从数组或对象开始的,并且 允许未设置片段的选项. "请求失败:内部服务器错误(500)"} -(void)loadFeedWithOffset:(NSInteger)Offset Limit:(NSInteger)Limit { AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; // [manager.requestSerializer setValue:@
我一直在研究使用核心数据与Web服务互动的最佳方法时,我一直在看到NSIncrementalStore. 阅读>德鲁·克劳福德(Drew Crawford)的一篇文章,编程指南,和本教程M仍在努力了解什么是NSIncremental商店,为什么以及何时使用它. 有人可以解释吗? 编辑 阅读了Mundi的答案后,我可以看到需要进一步的上下文.我正在考虑将核心数据与我正在构建的Web服务结合使用.我正在尝试找到在设备上存储本地信息并在有连接时发布到Web服务的最佳方法.我对核心数据缺乏知识促使我的研究,但我无法完全理解NSIncrementalStore的有用性. 解决方案 注意:当我在2012年写这篇文章时,此API是出血的,细节已经改变.如果愿意,请随时更新此信息.目前,我没有从事任何可可/OBJC项目,因此不幸的是,我不是一个好人.似乎整体要旨是正确的. 核心数据提供了一组工具来帮助管理对象持久性,即从某种存储中保存对象(NSManagedObject
我正在尝试编写利用Web服务的iPad应用程序.我知道Web服务的概念,并在C#/.网中使用了它.我需要知道如何在iPad上执行此操作.任何人都可以在iOS的网络服务上推荐一本好书或阅读材料吗? 解决方案 如果您使用的是iOS框架,则您的解决方案将涉及 nsurlConnection 或 nsrlrequest .可以找到 .根据我的经验,您想将这些API调用包装在您自己的客户端请求中,以构建您的应用程序逻辑理解的数据传输对象. 如果您正在查看第三方框架以访问安息的Web服务,请窥视这个答案对于许多iOS框架选项. 对于肥皂服务,请看在这里. 对于处理数据,这取决于您的Web服务生成的数据.有几个框架和库可以使消费XML或 JSON . 根据我的经验,有关该主题的最佳书籍是高级iOS编程.
我希望在同一视图控制器上帮助进行多个Web服务调用.有什么方法我可以做到. 谢谢 解决方案 有几种方法可以解决此问题,并且每个方法都取决于您的情况.第一个是使用+ (id)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error NSString方法的多个副本.因此,如果您想获取某些URL的内容,则可以使用以下代码 NSURL* url = [NSURL urlWithString:@"http://www.someUrl.com/some/path"]; NSString* urlContents = [NSString stringWithContentsOfURL:url encoding:NSUTF8Encoding error:nil]; NSURL* anotherUrl = [NSURL urlWithString:@"http:
我在Met Office Datapoint API中读取JSON的NSJSonSerialization遇到问题. 我得到以下错误 Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unable to convert data to string around character 58208. 我已经检查了一下,并认为这是根据角色位置的有问题的线 {"id":"353556","latitude":"57.1893","longitude":"-5.0929","name":"Sóil Chaorainn"} 根据我尝试过的几个验证器,JSON本身似乎是有效的,我希望它也来自大型组织,例如Met Office. nsjsonserialization不应该与诸如"ó"之类的字符效果吗? 如果不是,
我知道如何使用iPhone连接到Web服务器,但是现在我必须将iPhone连接到Web服务.我不知道该怎么做,并且在线没有演示或课堂. 有人有任何想法吗? 解决方案 您可能会发现本教程,称为 SOAP Web Services 有用.他展示了如何打包请求,将其发送到Web服务并阅读响应. 如果您需要XML解析方面的帮助,则有 touchxml touchxml 图书馆这将为您提供一个不错的XML"文档".只要对记忆使用谨慎. 如果您必须解析大型XML消息,此可可中有关libxml和xmlReader的教程将向您展示如何使用低级事件式解析器解析XML. 其他解决方案 我已经为iPhone OS 3.0创建了一个开源应用程序,该应用程序显示了如何使用XML(使用8个不同的iPhone库),SOAP,JSON(使用SBJSON和SBJSON和TouchJson)在iPhone应用程序中使用REST和SOAP服务,YAML,协议缓冲区(Google序列化格式),
是否有HTML分页的OpenSource项目? 我正在为iPhone开发一个应用程序. 我想在UIWebView上显示HTML文件,并且我不希望用户向下滚动,以查看未在屏幕上显示的剩余内容.我想在第二个UIWebView上显示其余内容.我该如何完成. 有任何建议? 解决方案 您可以查看可用的jQuery插件: http://plugins.jquery.com/project/project/project/pagination 这是一个演示: -pagination/demo/demo_options.htm 这就是您的使用方式: 编辑:好的,我在问题是关于iPhone和uiwebview的问题之前发布的...请不要投票给我:) 其他解决方案 使用jQuery进行分页,它确实会使您的工作变得简单.
我想在WebView中运行以下代码,以便内容可编辑: javascript: document.body.contentEditable ='true'; document.designMode='on'; void 0 到目前为止,我已经尝试了: - (void)webViewDidFinishLoad:(UIWebView *)webViews { NSString *string = @"javascript: document.body.contentEditable ='true'; document.designMode='on'; void 0"; [webView stringByEvaluatingJavaScriptFromString:string]; [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:string]]];
因此,我的应用程序中有UIWebView,并且加载了一些HTML(文章),请放入一些CSS以使所有内容变得更好.这很简单又清晰,一切都是完美的,直到我尝试在景观功能中添加阅读,然后我注意到UIWebView忽略了我在HTML中放置的任何CSS"字体大小",并且在旋转到景观模式后会大大增加字体尺寸. 我花了大约4-5个小时(我是编程iPhone应用程序的新手,但是在做正确的事情方面我很固执)试图修复它.尝试了很多配置选项 - 什么都没有. 今晚发生了一些神奇的事情.只需查看来源: 带有错误的风景: r = CGRectMake(0.0, 0.0, 480.0, 320.0); [adView.view removeFromSuperview]; if (!isFullScreen) { minus = 50 + minus; [controlsView setFrame:CGRectMake(0, r.size.height - 50, r.size
与WKWebView(iOS 10&MacOS 10.12)的UIWebView和以前的版本不同,本地文件的默认加载操作已从Bundle.main.path移动到Bundle.main.url.同样,loadFileURL也已成为加载wkwebview中本地资源的默认函数. 我知道.path和.url过去都完全不同,并且在过去曾经工作过 - 从历史上看,.path是默认选择的方法;但是,似乎Swift的最新版本最多,即使不是全部,.path解决方案都打破了. .path解决方案现在似乎是 flatten 目录层次结构,将所有CSS,JS和任何其他子目录内容都放入一个大目录中.例如,当WKWebView尝试加载index.html时,这会导致加载错误,例如,使用链接的,子折线样式表(即/css/style.css). 在看到了许多问题和无数的不确定/破裂的答案之后,是否有一个可以加载本地资源(包括链接的CSS/JS文件)的WKWebView的快速且无痛的解决方案,而没有任何解决
您推荐我下载网站(一个带有所有包含图像的HTML网站)的方法? ? 问题是如何抓取所有这些小块(JavaScript,图像,CSS)并在本地保存它们.这与具体的实现无关(我知道如何使用nsurlrequest和其他东西.我正在寻找爬网/蜘蛛方法). 越狱时间无法正常工作,因为它是针对官方(App Store)应用的. 问: Stefan 解决方案 下载?或获取网站的HTML源并使用UIWebView? 显示 如果上次,您可以简单地执行此操作: NSString *data = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://apple.com"] encoding:NSUTF8StringEncoding error:NULL]; // Load UIWebView with data [webView loadHTMLString:data base
如何获得零弱参考的数组?我不希望数组保留对象.我希望数组元素在被划分时要删除自己,或者将这些条目设置为nil. 同样,我该如何使用字典做到这一点?我不希望字典保留值.再说一次,我希望字典元素要么在交易值时要删除自己,要么将值设置为零. (我需要保留键,即唯一标识符,至少直到对相应的值进行交易为止.) 这两个问题涵盖了类似的基础: nsarray nsarray在arc /li> 有一个未经retained ID对象的列表吗? ,但两者都不要求零参考. 根据文档,nspointerarray和nshashmap都不支持ARC下的弱参考. NSVALUE的非重新定位值也不起作用,因为它是非零的. 我看到的唯一解决方案是用(weak)属性创建自己的 nsvalue类包装类,as 此答案在末尾提到.我没有看到更好的方法吗? 我正在为OS X 10.7和iOS 6.0开发. 解决方案 这是一个零弱引用包装类的代码.它可以与NsArray,Nsset
好吧,这是非常基本的,但是我已经一遍又一遍地阅读了文档,并希望确保我做对了.用简单的语言,我的守望套件应用程序将被某些用户互动关闭,这些用户交互离开了我的代码外部的应用程序,对吗?我不需要用任何将其设置为另一个运行的近距离过程清除或重置屏幕?我不需要构建"退出"或"关闭应用程序"例程,对吗?之所以令人困惑,是因为文档意味着该应用不再在屏幕上停用(可能是通过用户操作(例如刷卡到另一个应用程序))将其称为 didDeDeCeeActivate 函数.但是文档也声称: 在iOS模拟器中,戴戴式套件调用当前 接口控制器通过选择硬件>锁定锁定模拟器时. 随后解锁模拟器时,守望套件调用接口 控制器的作用方法再次.您可以使用此功能进行调试 您的激活和停用代码. 但是,模拟器似乎没有以任何方式处理内存或重置变量或重置我的应用程序.它在锁定时保持在州的屏幕上,并在我解锁时恢复到该状态.令我担心的是,如果我弄错了这个问题,我会为一项运行而构建一个应用程序.但是,我看不到关闭,屏幕清除率或您在常规
我有一个应用程序在更新和缓存时,如果安装了配对的Apple手表上的台面套件,我希望以更新和缓存的方式行为有所不同.如果戴管子扩展程序有任何启动的机会(您已经配对了手表并安装了该应用程序),那么我想做更多的沉重缓存. 有什么办法可以从我的iOS应用程序上检测到Apple Watchkit扩展程序是否安装在Apple Watch上?除了首次发布标志,希望它之后未删除? 欢呼 nik 解决方案 我将重申我给出的答案在这里.无法检测手表是否与手机配对. 其他解决方案 iOS 9,WCSession提供isWatchAppInstalled.您可以通过导入WatchConnectivity(@import WatchConnectivity;),启动会话([[WCSession defaultSession] activateSession])并调用[[WCSession sharedSession] isWatchAppInstalled]来使用它.请参阅此处:
我的应用程序在设备和模拟器上运行良好,但是当我提交时,我会得到您应用程序引用的一个或多个动态库中不存在一个或多个动态库上传完成后大约半小时,电子邮件向我发送了错误. 遵循有关此thead的建议在这里,即运行otool -L,我可以看到该应用程序的主可执行文件在文件夹中具有所有其所有@rpath/...dylib文件, 但是 ,Appex的可执行文件缺少一些快速的液体. 这是Appex上otool -L的输出: Watch Extension: /System/Library/Frameworks/WatchKit.framework/WatchKit (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current ve
https://i.stack.imgur.com/nm3jg.jpg.jpg 我即将从现有项目中构建观察应用程序目标.完成构建时,我遇到了一个奇怪的错误,使我无法正确运行手表应用程序.这是附带的屏幕截图. 环境 OSX 10.10 xcode 6.2 beta 模拟器iPhone 6 ios 8.2 当我尝试创建新的手表应用程序项目并尝试使用Lister Demo应用程序时,它们工作正常.因此,我怀疑我现有的项目有什么问题,但不确定错误消息不是真正解释的.感谢您的任何线索或帮助,谢谢您的宝贵时间. 编辑:经过很少的调查后扩展也无法正常工作. 解决方案 经过2天的研究,我发现了我认为是Xcode错误的答案. 基本上,这是由于Xcode构建设置上具有不同的构建名称而引起的.使它们制服应解决问题.如下所示,/p> 我希望这可以帮助任何人偶然发现这个问题. 其他解决方案 我也有同样的问题.这个序列对我有帮助: xcode当您有一个