- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 iOS 应用正在使用 AFNetworking 下载一个非常大的 zip 文件(3.79GB) .我的应用程序还使用了 Flipboard 的 FLEX library 2.2 监控网络流量。一位用户报告说,一旦应用触发下载请求,应用就会崩溃,并显示以下堆栈跟踪:
Crashed Thread
0 CoreFoundation 0x22c6010b __exceptionPreprocess + 124
1 libobjc.A.dylib 0x22406e17 objc_exception_throw + 36
2 CoreFoundation 0x22c60051 +[NSException raise:format:] + 110
3 Foundation 0x233bed7d -[NSConcreteMutableData initWithCapacity:] + 106
4 previewer 0x001e9c3d __86-[FLEXNetworkObserver(NSURLConnectionHelpers) connection:didReceiveResponse:delegate:]_block_invoke (FLEXNetworkObserver.m:946)
5 libdispatch.dylib 0x227d9b5b _dispatch_call_block_and_release + 8
6 libdispatch.dylib 0x227e675b _dispatch_queue_drain$VARIANT$mp + 1756
7 libdispatch.dylib 0x227e5d99 _dispatch_queue_invoke$VARIANT$mp + 282
8 libdispatch.dylib 0x227e8495 _dispatch_root_queue_drain + 394
9 libdispatch.dylib 0x227e8305 _dispatch_worker_thread3 + 94
10 libsystem_pthread.dylib 0x22997b29 _pthread_wqthread + 1022
11 libsystem_pthread.dylib 0x22997718 start_wqthread + 6
崩溃原因:
NSInvalidArgumentException: *** -[NSConcreteMutableData initWithCapacity:]: absurd capacity: 3794795864, maximum size: 2147483648 bytes
它出现在 FLEXNetworkObserver
的以下行中:
if (response.expectedContentLength < 0) {
dataAccumulator = [[NSMutableData alloc] init];
} else {
dataAccumulator = [[NSMutableData alloc] initWithCapacity:(NSUInteger)response.expectedContentLength];
}
他使用的是 iPad 3,他说他无法使用较新的 iPad mini 3 重现该问题。请问这是否是旧 iPad 型号(在本例中为 iPad 3)的 32 位限制造成的?导致崩溃的原因是什么?
我将禁用 FLEX 网络调试作为解决此问题的方法。
更新
通过 [[FLEXManager sharedManager] setNetworkDebuggingEnabled:NO];
禁用 FLEX 后我可以成功下载文件,所以这与 AFNetworking 完全无关。
最佳答案
My iOS app is downloading a very large zip file
事实上,NSMutableData 被留出来保存它,这表明这里的计划不是下载文件,而是将其视为数据来保存整个时间都在内存中。这是非常错误的,尤其是。因为如果你的应用程序试图在内存中保存这么大的对象,它很可能会崩溃。真正的下载会将下载到磁盘,并且几乎不需要预留任何内存。
关于ios - NSInvalidArgumentException : *** -[NSConcreteMutableData initWithCapacity:]: absurd capacity: 3794795864, 最大大小:2147483648 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36001728/
我正在查看 vector 在 https://www.cs.odu.edu/~zeil/cs361/sum18/Public/vectorImpl/index.html 上的实现. 在1.3.1下,显
我在这两篇论文中发现了“high-capacity cnn”这个短语: 1. Rich feature hierarchies for accurate object detection and se
我在根队列下有 4 个队列,配置如下。 |-------------|-----------------|---------------------|-------------------| | Qu
我正在阅读 Scala,我想知道...... 为什么 val capacity : Int 代替 val Int capacity. 做出这个选择的任何原因。如果不是,在我看来,放弃 Java 的声明
我不明白为什么数据是导致我出现问题的唯一私有(private)变量。本来我以为我可以通过在构造函数中第一次声明变量来解决问题,但我觉得必须有一种方法可以私下定义变量,然后在构造函数中设置它们而不会出现
股票初始值为 1 流量为0.1 Stock1 初始值为 0。 当我运行模拟时,我意识到股票的值(value)低于 0(获得负值)。当 Stock 的值达到零时如何停止流动。 最佳答案 一个应该有一个非
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Size-limited queue that holds last N elements in Java Java
我可以使用容量来查找 ShortBuffer 的实际大小或长度吗?根据我的阅读,它返回缓冲区中包含的元素数。但是“能力”这个词就是这么含糊。如果我在这个缓冲区中放入一个包含 5 个短裤的数组,capa
我是 C++ 的新手,我目前正在处理这个类(class)表项目,以下是我的 add_course 函数。我在 map 中存储学生的 ID、学期和类(class)列表。它有效(我可以向学生添加类(cla
我理解deque和vector都预留了一定的增长空间。 vector::capacity() 能够获取一个 vector 的内部保留空间。 Deque 在标准中没有这样的成员。有什么方法可以获取这些信
当使用只有一个队列(默认)的 Hadoop 容量调度程序时,hadoop 如何调度该作业中的不同作业?是先进先出吗?它有不同的机制吗? 使用公平调度程序时,这种行为有什么不同吗? 最佳答案 来自 cl
List 上有几个属性这似乎与列表中的项目数量有关 - Capacity , Count (作为属性和方法存在)。这非常令人困惑,尤其是与 Array 相比那只有 Length . 我正在使用 Lis
package main import "fmt" import "time" func main() { message := make(chan string ,1) // no buf
我只打开简单的项目并收到错误 "Gradle sync failed: Illegal Capacity: -182931123" 最佳答案 似乎删除/home//.gradle/daemon/4.1
我遇到了一个非常令人困惑的崩溃,我目前正在用尽我的智慧...... 首先是崩溃日志: 日期/时间:2012-02-14 10:55:09.771 +0100 操作系统版本:Mac OS X 10.7.
作为用户,我有 std::string 的 size()/resize()/reserve() 来了解和管理所有这些字符串的内存。 但是,我什么时候必须使用 capacity()?是否有任何用例或必要
当我创建一个向量时,长度和容量是相同的。这些方法有什么区别? fn main() { let vec = vec![1, 2, 3, 4, 5]; println!("Length:
void enqueue( int item) { if (is Full(this)) return; this.rear = (this.rear + 1)%thi
我想知道如何使用DP解决这样的问题。 给定 n 个球和 m 个箱子,每个箱子有最大值。容量 c1, c2,...cm。将这 n 个球分配到这 m 个箱子中的方法总数是多少。 我面临的问题是 如何找到递
HTTP 状态代码 503 是 described in rfc2616当服务器“由于服务器的临时过载或维护而当前无法处理请求”时是相关的。 在某些情况下,应用程序可能会因维护而停机。在某些情况下,应
我是一名优秀的程序员,十分优秀!