- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 NSURLConnection 委托(delegate)方法 connectionDidFinishLoading 执行时遇到错误。有趣的是,它可以在模拟器上运行,但在物理设备上会崩溃。更有趣的是,只有当这一系列操作完成时它才会崩溃,
错误日志:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xa0000008
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x321befbc 0x321bb000 + 16316
1 Tittle-Tattle 0x0002cf10 -[MapViewController connectionDidFinishLoading:] (MapViewController.m:108)
2 Foundation 0x3316bc32 0x330a5000 + 814130
3 Foundation 0x330c36e2 0x330a5000 + 124642
4 Foundation 0x330c36ac 0x330a5000 + 124588
5 Foundation 0x330c35ce 0x330a5000 + 124366
6 CFNetwork 0x35e7689e 0x35e67000 + 63646
7 CFNetwork 0x35e6b53e 0x35e67000 + 17726
8 CFNetwork 0x35e6b632 0x35e67000 + 17970
9 CFNetwork 0x35e6b23c 0x35e67000 + 16956
10 CFNetwork 0x35e6b172 0x35e67000 + 16754
11 CoreFoundation 0x34176afc 0x340e9000 + 580348
12 CoreFoundation 0x341762c8 0x340e9000 + 578248
13 CoreFoundation 0x3417506e 0x340e9000 + 573550
14 CoreFoundation 0x340f84d6 0x340e9000 + 62678
15 CoreFoundation 0x340f839e 0x340e9000 + 62366
16 GraphicsServices 0x3254dfc6 0x3254a000 + 16326
17 UIKit 0x3734e73c 0x3731d000 + 202556
18 Tittle-Tattle 0x000200e0 main (main.m:16)
19 Tittle-Tattle 0x00020084 start + 32
代码:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[urlConnection cancel];
[urlConnection release];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
//Since we got new fresh data we shall put it in LatestLocationData entity in CoreData
[self insertLastKnownLocationDataIntoCoreDataWith:responseString];
//Test purpose only, See what we have got in CoreData
[self fetchLastKnownLocationDataFromCoreData];
NSDictionary *results = [responseString JSONValue];
placesNearBy = [results objectForKey:@"results"];
[responseString release];
[self dropNearByPlacesAnnotationsFrom:placesNearBy];
}
问题:这可能是什么原因?
类似的问题(不是我提出的!)以前曾问过但没有人回答这个问题:Application not running in iOS 5
到目前为止,我的理解是,EXE_BAD_ACCESS 仅在您尝试访问尚未分配的内存地址或之前分配但现在已释放的内存地址时发生。
在评论回复后编辑:
嘿 Firoze,这就是我初始化 NSURLConnection 的方式
urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
最佳答案
查看您的评论,我建议您对所有 ivar 使用 @property
声明。它们将减轻您必须执行的所有手动内存管理,这可能是您的问题所在。
快速示例
YourClass.h
@interface YourClass
@property (nonatomic, retain) NSURLConnection *urlConnection;
// More ivars
// Method declations
@end
YourClass.m
@interface YourClass
@synthesize urlConnection = _urlConnection;
// The method where you instantiate urlConnection
{
NSURLConnection *urlConnection = [[NSURLConnection alloc] initWithRequest:request
delegate:self];
self.urlConnection = urlConnection;
[urlConnection release]; urlConnection = nil;
// Do whatever else you do here
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[self.urlConnection cancel];
self.urlConnection = nil; <- This takes care of releasing the ivar and setting it to nil so there is no dangerous hanging pointer
// ... the rest of your method
}
[urlConnection cancel];
[urlConnection release];
// You need to clean up after yourself with any ivars you make
- (void)dealloc
{
[_urlConnection release];
// Release any other ivars
[super dealloc];
}
@end
关于ios - 在 connectionDidFinishLoading 中接收错误,EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8108843/
我需要一些帮助。我正在从另一个类调用登录函数, // Login on server - (BOOL) login:(NSString*) username password:(NSString*)p
我从服务返回的数据多次呈现到我的 UITableView。我移动了将填充我的表的代码放在 connectionDidFinishLoading 委托(delegate)中。这是该代码的正确位置吗? 我
我已经实现了 NSURLConnectionDownloadDelegate、NSURLConnectionDataDelegate 委托(delegate)方法,如下所示。 问题是在 connect
我可以从互联网下载 ZIP 文件。后处理在connectionDidFinishLoading 中完成,并且工作正常,但没有更新UIView 元素。例如,我设置了 statusUpdate.text
我正在使用 NSURLConnection 从 Web 服务下载压缩文件。在 didReceiveData 中,我将数据附加到文件中,并使用良好的互联网连接,所有这些似乎都可以正常工作。该文件在下载时
我有一个 iPad 应用程序,我在其中使用 NSURLConnection 进行异步调用。在某些情况下,我在 connection:didReceiveData: 中收到所有响应数据,但从未调用过 c
我发送了请求,但没有调用方法 connectionDidFinishLoading,为什么? - (void)startHttpRequestWithCookie:(NSArray *)authCoo
我在我的 iOS 应用程序中设置了一个简单的 Objective-C 类,它有一个简单的任务,即下载一个 JSON 文件,解析它,然后传回一个 NSString,其中包含一个从下载的 JSON 文件解
我有一个简单的 JSON 数组,它是从传递给第三方服务的邮政编码返回的。 http://api.geonames.org/findNearbyPostalCodes?postalcode=94115&
我正在下载和解析 JSON 对象以构建“新闻提要”来填充 UITableView。我在 connectionDidFinishLoading 委托(delegate)方法中的最后一行代码是: [tab
我正在开发一个 iOS 应用程序,它会触发一些 NSURL 请求。我创建了一个实现 didReceiveData 的 WebService 类,如下所示: - (void)connection:(NS
我正在尝试使用适用于 Objective-C 的 Google API 客户端库在 youtube 上上传视频,我使用下面给出的代码,但它一直给我这个错误,我试图再次在 youtube 示例项目上运行
所以我想使用 socket.io 开发一个基本的聊天应用程序。我正在使用 this框架,本质上只是 SocketRocket 的包装器。 现在我创建了一个 connectToHost:onPort 并
我在执行下面的代码时遇到了这些错误: [Switching to process 74682 thread 0x2003] [Switching to process 74682 thread 0x2
我下载了在 UITableView 单元格内显示的背景图像。 直到 UITableView 停止滚动后才会显示图像。 我想以更快的方式显示下载的图像。例如,我想在 UITableView 开始减速时执
我在 NSURLConnection 委托(delegate)方法 connectionDidFinishLoading 执行时遇到错误。有趣的是,它可以在模拟器上运行,但在物理设备上会崩溃。更有趣的
背景:在握手过程中,我的 iOS 应用学习服务器能力 在didReceiveResponse中查看其头信息 和 在 connectionDidFinishLoading 中解析其响应 XML> 问题陈
关于“didFailWithError”和“connectionDidFinishLoading” 他们都可以叫吗?或者它总是一个或另一个? 最佳答案 不可以,不能同时调用。 委托(delegate)
在从我的网络服务获取数据之前,我的表正在加载。 当我调试它时,我可以看到我的 NSMutableArray 有 123 个对象,但它没有反射(reflect)在表中。 这是我的connectionDi
我想在另一个类中获取一个类数组数据(即我想在mainview类中获取connectionDidFinishLoading数组数据) 背景类.h #import #import "JSON.h" @i
我是一名优秀的程序员,十分优秀!