问题标签 [nsurlconnection]

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 投票
2 回答
2858 浏览

iphone - (void)connectionDidFinishLoading 如何返回一些东西?

我有这个简单的场景:

  • main.m (这是我的主要课程)
  • myClass.m(这是一个附加类)

在我的计划中应该发生这样的事情

(在 MAIN.m 中)

myClass所做的是打开一个新的 NSURLConnection,检索一些数据,然后 - 当它准备好时 - 解析它并返回一个数组。

为了返回一个包含解析数据的数组,我写了这个简单的

为了知道数据何时真正完成下载以及何时开始解析它,我正在使用

但是我可以在哪里以及如何调用returnArray: if connectionDidFinishLoading 是 VOID?:(

我希望这是有道理的......我真的被困住了,我似乎无法找到解决方案。我尝试使用 NSNotification 但它似乎也不起作用。

谢谢大家的支持!恩里科

0 投票
2 回答
40282 浏览

iphone - 更改 NSURLConnection 的 userAgent

嘿,我正在使用 NSURL 连接来接收数据。

是否可以更改用户代理字符串?现在是:

AppName/AppVersion CFNetwork/459 达尔文/10.0.0.d3

0 投票
2 回答
866 浏览

iphone - meta http-equiv="Refresh" 和 NSURLConnection

我有一个 URL,例如http://www.test.com,其中包含如下元重定向:

但是,- (void)connectionDidFinishLoading:(NSURLConnection *)connection只是从第一个 URL 返回初始数据。

现在我有责任解析返回的 HTML 文件并提取元 url 属性并再次调用 NSURLConnection 吗?或者,还有更好的方法?

这种方法有多安全?

只使用另一种重定向方法可能会更好,但目前,这是唯一对我开放的方法......

0 投票
5 回答
5758 浏览

iphone - 何时在 NSURLConnection 委托上调用 release?

将委托传递给NSUrlConnection对象时,如下所示:

你什么时候应该在委托上调用释放?应该在connectionDidFinishLoading吗?如果是这样,我不断得到exec_bad_access. 我看到我的代表正在通过仪器泄漏。

谢谢

0 投票
1 回答
1416 浏览

iphone - iPhone app中的内存分配、释放和NSURLConnection

我希望有人可以帮助我解决这个问题。我正在努力寻找应该是一个简单问题的答案。顺便说一句,这是我使用 c 和 c# 多年后的第一个主要 obj-c 项目,所以请随时指出我失败的地方。

我有一个 iPhone 应用程序,旨在将相册加载到 UIScrollView 中。它还具有随机图像功能,该功能使用相同的过程,但仅显示单个图像。它是这样工作的:

  1. 读取外部 XML 提要(存储在 ruby​​-on-rails 网站上),其中包含解析后照片的随机 url 的路径。
  2. 使用 NSURLConnection 将 URL 的内容下载到 NSData。
  3. 创建并推送 ScrollView
  4. 子类 UIView 分配一个 UIImageView,分配一个带有 NSData 的 UIImage,用 UIimage 初始化 UIImageView,最后将 imageview 添加到 UIView。
  5. 然后,父视图将 UIView 添加到 UIScrollView,然后将其推到前面。

当需要下一个随机图像时,此过程再次发生。除了向 UIScrollView 添加了几个 UIView 之外,它在显示整个图像专辑时也使用相同的过程。

问题是,尽管在适当的情况下使用了 release 和 delloc,但活动工具指示 NSURLConnection 和 UIImage 使用的内存在请求下一个图像时没有从内存中释放。将应用程序构建到 iPhone 上进一步证明了这一点。连续请求多个图像会导致应用程序崩溃,这可能是由于内存消耗造成的。

以下是一些代码,因为由于合同协议,我无法发布整个项目。

URLDownload 类(使用 DataDownload)

数据下载类

ImageView 子类

如何显示图像的示例代码

下图显示了所有分配,以说明正在发生的事情。1 显示启动时分配,2 显示加载第一个图像后,3 显示第二个图像后。

http://www.gretanova.com/misc/iphone/1.png & 2.png & 3.png

谢谢大家,李

0 投票
1 回答
938 浏览

iphone - 重用 NSURLConnection 对象?

我有一个应用程序将通过 HTTP 与服务器进行大量通信,这些连接可能重叠。我打算异步加载数据。我知道分配内存会影响性能,所以我认为明智的做法是保留一组可用的连接对象,这样每次我需要与服务器通信时,我很有可能不必分配新连接,只需重用空闲连接。但是,似乎没有办法用新的请求对象启动现有连接。这是我想念的东西,还是我叫错了树?

0 投票
1 回答
6372 浏览

iphone - 将图像上传到我的服务器时显示进度条

我的应用程序将图像上传到我的服务器。我想通过进度条显示此事件。

我使用上述方法来查看控制台中的进度。但是我如何使用“进度条”在 nib 文件中做到这一点?

0 投票
1 回答
1876 浏览

nsurlconnection - NSURLConnection 泄漏——为什么?

NSURLConnection *connection 是类的属性

Instruments 报告说我在下面代码的第二行中泄漏了一个 NSURLConnection 对象。

didFinishLoadingdidFinishWithError委托选择器中,我正在释放连接并设置为 nil

我读过“NSURLConnection 泄漏?” 帖子和其他几个。我觉得我一定错过了一些非常明显的东西。帮助?

0 投票
3 回答
19345 浏览

objective-c - 从后台线程到服务器的异步请求

当我尝试从后台线程向服务器发出异步请求时,我遇到了问题。我从来没有得到这些请求的结果。显示问题的简单示例:

然后我从主线程调用它

方法downloadImage如下:

问题是永远不会调用 imageDownloadDidFinish 方法。而且没有任何方法

被称为。但是,如果我更换

经过

一切正常。我假设后台线程在异步请求完成之前就死了,这会导致问题,但我不确定。我对这个假设是否正确?有没有办法避免这个问题?

我知道我可以使用同步请求来避免这个问题,但这只是一个简单的例子,实际情况更复杂。

提前致谢。

0 投票
3 回答
5206 浏览

objective-c - 使用来自异步 NSURLConnection 的数据填充 NSImage

我碰上了众所周知的墙,试图弄清楚如何使用从我的桌面应用程序(不是 iPhone 应用程序!!)中的异步 NSURLConnection 返回的数据填充 NSImage。

这是情况。

我有一个使用自定义单元格的表格。在每个自定义单元格中都有一个 NSImage,它是从 Web 服务器中提取的。为了填充图像,我可以轻松地执行同步请求:

这样做的问题是表格会阻塞,直到图像被填充(显然是因为它是一个同步请求)。在一张大桌子上,这使得滚动难以忍受,但即使只是在第一次运行时填充图像,如果它们的尺寸很大,也会很乏味。

所以我创建了一个异步请求类,它将根据Apple 的文档在自己的线程中检索数据。那里没问题。我可以看到正在提取和填充的数据(通过我的日志文件)。

我遇到的问题是,一旦我有了数据,我需要回调到我的调用类(自定义表格视图)。

我的印象是我可以做这样的事情,但它不起作用,因为(我假设)我的调用类真正需要的是一个委托:

在我的连接类委托中,我可以看到我得到了数据,我只是看不到如何将它传递回调用类。我的connectionDidFinishLoading方法直接来自 Apple 文档:

我希望这是一个可以解决的简单问题,但我担心我在这方面的知识有限,尽管进行了一些严肃的谷歌搜索并尝试了许多不同的推荐方法,但我仍在努力想出一个解决方案。

最终,我将为我的应用程序拥有一个复杂的缓存机制,其中表格视图会在输出图像并将它们从服务器获取之前检查本地计算机,并且可能在检索图像之前有一个进度指示器。现在,如果使用同步过程的图像足够大,即使是本地图像填充也会变得迟缓。

任何和所有的帮助将不胜感激。

解决方案更新

万一其他人需要类似的解决方案,这要感谢 Ben 的帮助,这就是我想出的(当然,为了发布而进行了一般修改)。请记住,我还实现了图像的自定义缓存,并使我的图像加载类足够通用,以供我的应用程序中的各个地方用于调用图像。

在我的调用方法中,在我的情况下是表格中的自定义单元格......

这将创建一个 myLoader 类的实例并向其传递 4 个参数。我想要获取的图像的 URL,一个唯一的引用,我用来确定在设置通知观察者时哪个类进行了调用,图像的 ID,我是否要将图像保存到缓存以及路径到缓存。

我的 ImageLoaderClass 定义了上面调用的方法,我在其中设置了从调用单元传递的内容:

在该connectionDidFinishLoading方法中,如果需要,我将文件保存到缓存,并向任何监听的观察者发出通知调用:

最后在表格控制器中设置一个观察者来监听通知并将其发送给处理重新显示自定义单元格的方法:

问题解决了!