相关疑难解决方法(0)

NSURLConnection在10.5.7下崩溃

我有一个小应用程序可以下载股票价格并且完美运行(多年),直到我最近升级到10.5.7.升级后,程序将在此调用时崩溃:

NSString *currinfo = [NSString stringWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://finance.yahoo.com/d/quotes.csv?s=%@&f=l1c1p2", escsymbol]]];
Run Code Online (Sandbox Code Playgroud)

奇怪的是,崩溃不会马上发生.这行代码被多次调用,没有任何问题,然后由于此调用崩溃,程序最终会在1-2小时后失败.

我原本在这里发了一篇很长的帖子,描述了我试图调查这个问题.我收到了两个建议:(i)使调用异步(可能更好)和(ii)使用NSZombieEnabled来调查Objective-C对象提前解除分配的可能性(此注释是为了响应显示失败的堆栈跟踪而做出的objc_msgSend).

我花了很多时间使调用异步(使用[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]),这没有帮助.该计划最终仍然失败,通常在10-15分钟后.在失败之前的这段时间内,许多异步调用没有任何问题,数据被返回等等.一切都很好.然后程序突然再次崩溃.

然后我打开了NSZombieEnabled.果然,当程序最终崩溃时,我收到了消息:

-[CFArray count]: message sent to deallocated instance 0x16b90bd0
Run Code Online (Sandbox Code Playgroud)

"info malloc 0x16b90bd0"随后产生:

0: 0x93db810c in malloc_zone_malloc
1: 0x946bc3d1 in _CFRuntimeCreateInstance
2: 0x9464a138 in __CFArrayInit
3: 0x946cd647 in _CFStreamScheduleWithRunLoop
4: 0x932d1267 in _Z16_scheduleRStreamPKvPv
5: 0x946bf15c in CFSetApplyFunction
6: 0x932b0e2b in CFNSchedulingSetScheduleReadStream
7: 0x9331a310 in _ZN12HTTPProtocol19createAndOpenStreamEv
8: 0x9332e877 in _ZN19URLConnectionLoader24loaderScheduleOriginLoadEPK13_CFURLRequest
9: 0x9332d739 in _ZN19URLConnectionLoader26LoaderConnectionEventQueue33processAllEventsAndConsumePayloadEP20XConnectionEventInfoI12XLoaderEvent18XLoaderEventParamsEl
10: 0x9332dbdd in _ZN19URLConnectionLoader13processEventsEv
11: 0x932d8dbf in _ZN17MultiplexerSource7performEv
12: 0x946ba595 in CFRunLoopRunSpecific
13: …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c

10
推荐指数
2
解决办法
3571
查看次数

奇怪的iPhone崩溃日志

任何人都可以告诉我这次崩溃的原因.

特别是我担心这个 -

**Application Specific Information:
iMixtapes[1185] has active assertions beyond permitted time: 
{(
    <SBProcessAssertion: 0x66bc490> identifier: UIKitBackgroundCompletionTask process: iMixtapes[1185] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:1185 preventSuspend  preventIdleSleep ,
    <SBProcessAssertion: 0x66ade50> identifier: UIKitBackgroundCompletionTask process: iMixtapes[1185] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:1185 preventSuspend  preventIdleSleep 
)}
Elapsed total CPU time (seconds): 106.580 (user 62.160, system 44.420), -3% CPU 
Elapsed application CPU time (seconds): 1.700, 0% CPU**
Run Code Online (Sandbox Code Playgroud)

这是崩溃日志:

Incident Identifier: C5DFDDE4-2AE0-461A-937A-C422353102CE
CrashReporter Key:   3a88f20a9e18f468445bddc212b7aa673c6dc89b
Hardware Model:      iPod4,1
Process:         iMixtapes [1185]
Path:            /var/mobile/Applications/104BD0F8-BC33-43A9-AB9F-FC609750C4B6/iMixtapes.app/iMixtapes
Identifier: …
Run Code Online (Sandbox Code Playgroud)

iphone crash-reports

8
推荐指数
1
解决办法
7275
查看次数

标签 统计

cocoa ×1

crash-reports ×1

iphone ×1

objective-c ×1