问题标签 [nsconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
51 浏览

cocoa - -[NSApplication terminate:] 使用 NSConnection 时行为不端

我有两个使用 NSConnection 对象进行通信的简单应用程序。
现在我需要以受控方式终止其中一个应用程序,因此我在 NSConnection 的出售对象上调用 -[MyObj terminate]。该方法依次调用 -[NSApplication terminate:]。
这会导致应用程序退出......但是!无需调用 -applicationWillTerminate: (或“应该”版本)。
但是,当从不涉及 NSDisantObjects 的方法调用 -[NSApplication terminate:] 时,委托方法确实会被调用。
这是记录在案的行为还是错误或我做错了什么?
我想要实现的是(具有讽刺意味的是)取消 applicationShouldTerminate 中的终止请求:以便在以后明确定义的时间优雅地关闭 NSConnection,我不摆弄 NSDistantObjects。

0 投票
0 回答
67 浏览

ios - NSConnection sendSynchronousRequest 中的内存问题

我正在尝试在我的一个 iOS 项目中使用 LolayHttpClient。除了一个问题,它运行良好——即使我在 autoreleasepool 下运行代码,内存也在不断增长。

相关代码非常简单。LolayHttpClient 使用 NSConnection 发送同步请求。所以我怀疑内存问题是在执行 sendSynchronousRequest 时引起的。以下是我的测试功能。有人会帮忙吗?

executeSynchronouslyAtURL:url 最终在同一个线程中调用 executeMethodSynchronously,如下所示。

Xcode 仪器工具指向功能:

HTTPNetStreamInfo::_readStreamClientCallBack(__CFReadStream*, unsigned long)

定期调用,每次调用时分配 132k 字节。

0 投票
1 回答
663 浏览

objective-c - NSConnection - 如何正确地“取消”对象?

对于 Mac OSX,我正在尝试使用 NSConnection 代理从一个应用程序实例到同一主机上的另一个应用程序实例的对象访问。相关代码如下。如果需要,我可以提供更多。假设当我说“服务器”时,我指的是实际使用 NSConnection 来“销售”对象的应用程序。而“客户端”是获得代理的同一应用程序的另一个实例。

一切正常,除了两个问题。

  1. 当充当服务器的应用程序试图拆除它正在出售的对象时,任何通过代理连接的客户端仍然存在。也就是说,即使在我调用stopLocalServer下面的函数之后,之前连接并获得代理对象的任何客户端应用程序仍然能够发送消息并调用服务器应用程序上的代码。我本来希望客户端在服务器调用后传递消息时抛出异常NSConnection:invalidate。如何在不需要服务器进程退出的情况下强制断开任何客户端?

  2. 在下面的startClientConnection代码中,如果服务器从一开始就没有使用预期的注册名称出售对象,那么客户端上的调用NSConnection:connectionWithRegisteredName:host将立即返回 nil。这很好。但是,如果服务器通过startLocalServer下面的代码开始出售一个对象,然后用 停止出售它stopLocalServer,随后的客户端连接尝试将挂起(永远阻塞),直到服务器应用程序进程退出。对 NSConnection:connectionWithRegisteredName 的调用返回一个非零对象,但对 的调用[_clientConnection rootProxy]将永远挂起,直到服务器应用程序实际退出。

我怀疑我没有正确地拆除原始的 NSConnection 对象,或者我在这里遗漏了一些基本的东西。

以下是我的用户界面代码所在平台的一些相关代码:

0 投票
0 回答
194 浏览

ios - iOS:如何在仅 WiFi 和带移动网络的 WiFi 上设置连接选项,

  • 设置连接类型

    • 如果只使用wifi时选择wifi,不使用移动网络。

    • 如果在使用两个连接时根据可用选择了 Wifi with Mobile 连接。

0 投票
1 回答
139 浏览

ios - NSURLConnection 取消回调

NSURLConnection cancel是否可以使用回调捕获?

如果我使用此代码

myUpdateUImessage在此回调之前调用from time to

所以用户界面没有正确更新!也就是说,最终的 UI 比进度 UI 显示。

编辑 问题是关于

正确NSQueue的是 NSOperationQueue *tempQueue = [NSOperationQueue mainQueue];

0 投票
3 回答
492 浏览

ios - NSURLConnection 完成所有进程后发送请求

我有一个发送请求的嵌套循环。

问题是我想"-(void) connectionDidFinishLoading:(NSURLConnection *) connection"在 for 循环中再次发送请求之前先输入。

但目前它将完成 for 循环并在 enter 之前将所有请求发送到"-(void) connectionDidFinishLoading:(NSURLConnection *) connection".

0 投票
1 回答
181 浏览

macos - OSX 应用程序和命令行工具之间的 NSConnection

我正在尝试在 OSX 应用程序和命令行工具之间创建连接以处理分布式对象。

像这样在命令行工具中注册连接

并尝试从应用程序连接到注册的连接对象,如下所示

当应用程序没有被沙盒化时,就会建立连接。当应用程序被沙盒化时,connectionWithRegisteredName返回 nil。

我已尝试向权利添加密钥和值,并使用团队证书对工具和应用程序进行签名,但它不起作用

在沙盒化时,我该怎么做才能使连接正常工作?

0 投票
1 回答
32 浏览

macos - 如何验证 NSConnection 请求?

NSConnection(让我们忽略现在已弃用的事实。)

我有一个工具可以通过服务端口接受到 NSConnection 的连接。我有一个启动该工具然后连接到它的应用程序。那部分有效。

现在,我想确保只有我的特定应用程序可以与该工具对话,并且该工具拒绝来自任何其他工具/应用程序的连接。

我怎样才能最好地做到这一点?

我有一个想法:

由于应用程序启动了工具,它可以将“秘密”作为参数传递给工具,然后每当我将其函数之一作为 NSDistributedObject 调用时,我都会将相同的秘密传递给工具。但是,这意味着我必须将这个额外的参数传递给我所做的每个调用,我认为这是不必要的开销。

我认为当应用程序打开与工具的连接时,我可以接受或拒绝连接,即只有一次。有NSConnectionDelegate,我怀疑我必须在其authenticateComponents:withData:处理程序中实现身份验证检查,但我找不到任何可以解释如何执行此操作的示例。我的意思是,该连接尝试中是否有任何数据可以识别请求连接的应用程序,例如它的 PID?