- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在调试报告为的崩溃:
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR
崩溃发生在 numberOfFails++
的线路上.
该应用程序使用ASIHTTP
。我个人更喜欢使用 NSURLConnection
。我永远不会自动重复 NSURLConnection
的请求如果它失败了,因为我从未见过它在不应该失败的时候失败。我宁愿给 UI 一个刷新按钮或显示 UIAlertView
有一个重试按钮或类似的东西。
无论如何,为了与其他团队成员合作,我希望在不替换 ASIHTTP
的情况下解决此问题。与 NSURLConnection
现在。
请求以如下内容开始:
- (void)getResources:(CLLocation *)location withQuery:(NSString *)query {
NSURL *url = [NSURL URLWithString:[NSString stringWithString:@"https://example.com/"]];
self.resourcesAPIRequest = [ASIFormDataRequest requestWithURL:url];
[resourcesAPIRequest setPostValue:[Model instance].oauth_token forKey:@"oauth_token"];
[resourcesAPIRequest setPostValue:[[NSNumber numberWithDouble:location.coordinate.latitude] stringValue] forKey:@"latitude"];
[resourcesAPIRequest setPostValue:[[NSNumber numberWithDouble:location.coordinate.longitude] stringValue] forKey:@"longitude"];
[resourcesAPIRequest setPostValue:query forKey:@"query"];
[resourcesAPIRequest setDelegate:self];
[resourcesAPIRequest setDidFinishSelector:@selector(resourcesAPIReturned:)];
resourcesAPIRequest.userInfo = [NSDictionary dictionaryWithObjectsAndKeys:NSStringFromSelector(@selector(getResources:withQuery:)), @"repeatSelector", location, @"argument1", query, @"argument2", nil];
[resourcesAPIRequest startAsynchronous];
}
我注意到的一件事是 : <ASIHTTPRequestDelegate>
头文件中没有,但是这个回调方法仍然被调用就OK了:
#define maximumNumberOfFails 50
- (void)requestFailed:(ASIFormDataRequest *)request {
static int numberOfFails = 0;
if (numberOfFails < maximumNumberOfFails) {
[NSThread sleepForTimeInterval:sleepTimeInSeconds];
if ([request.userInfo objectForKey:@"argument2"]) {
[self performSelector:NSSelectorFromString([request.userInfo objectForKey:@"repeatSelector"]) withObject:[request.userInfo objectForKey:@"argument1"] withObject:[request.userInfo objectForKey:@"argument2"]];
} else if ([request.userInfo objectForKey:@"argument1"]) {
[self performSelector:NSSelectorFromString([request.userInfo objectForKey:@"repeatSelector"]) withObject:[request.userInfo objectForKey:@"argument1"]];
} else {
[self performSelector:NSSelectorFromString([request.userInfo objectForKey:@"repeatSelector"])];
}
numberOfFails++;
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Problem" message:@"There was a problem connecting to the servers. Please make sure you have an Internet connection." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
numberOfFails = 0;
}
}
另外,我认为 static int numberOfFails
应该是static NSUInteger numberOfFails
。而且,我注意到请求以 startAsynchronous
开头。 。是static int numberOfFails
原子?这可能就是我们收到错误 SEGV_ACCERR
的原因(映射对象的权限无效)。
想法?
最佳答案
该问题可能与您的静态变量无关。
requestFailed:
是在主线程上执行,还是在后台线程中执行?
如果它在后台线程上,则需要使用performSelectorOnMainThread:withObject:
。
如果它在主线程上,您可能需要在执行新的 HTTP 请求之前通过运行循环。为此,请使用 performSelector:withObject:afterDelay:
,并传递“0.0”作为延迟。
您会注意到这两种方法都只允许单个方法参数。通常,您在 NSDictionary
中传递参数,而不是像您现在所做的那样尝试事先解析出参数的数量。
关于iphone - 递增 `static int` 会导致 SIGSEGV SEGV_ACCERR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179459/
我有一个使用 Kickflip 流式传输视频的应用程序和 ButterflyTV libRTMP 现在应用程序在 99% 的时间里工作正常,但有时我会遇到无法调试的 native 段错误,因为消息太隐
我正在检查一些崩溃,它们都有信号 SIGSEGV,原因是 SEGV_ACCERR。在搜索 SEGV_ACCERR 后,我发现最接近人类可读解释的是:Invalid Permissions for ob
我已经编写了一个 C 代码来使用交换逻辑洗牌一副 52 张牌。该代码生成一个介于 0 到 53 之间的随机数(52 和 53 被省略),然后将其与数组中的第 i 个索引交换。代码如下。 我的问题:当我
我有时会收到此崩溃报告: Name: SIGSEGV Reason: SEGV_ACCERR Stack Trace: 0 MyApp 0x00070456 0x1000 + 455766 1 MyA
我的应用程序有时会在layoutSubview方法中崩溃。当应用程序计算 UITableViewCell 的高度时会发生这种情况。应用程序有时会崩溃,但并非总是如此。这里的函数代码: + (CGFlo
添加以下代码后我一直遇到崩溃: class AudioPolicyService : public BinderService, public BnAudioPolicyService
此崩溃报告中没有引用我的应用程序的任何方法,我也无法重现它。我的几个用户遇到了同样的崩溃。我找不到任何带有 ScrollView 的表格 View 单元格或我使用 Spring 的任何地方。这次崩溃可
我刚刚在 AppStore 上发布了一个应用 Crittercism崩溃报告 我已经收到了很多关于 SIGSEGV 错误的崩溃报告。 Crittercism 给了我一个 StackTrace 和一些关
我在 third party component 中发生了崩溃。很明显,这是有一个我必须研究的根本原因。但为了同时使其更加稳健,我想用 @try @catch block 包围崩溃的调用。 到目前为止
我正在调试报告为的崩溃: Exception Type: SIGSEGV Exception Codes: SEGV_ACCERR 崩溃发生在 numberOfFails++ 的线路上. 该应用程序
我在托管代码中创建了一个缓冲区: var nativeBuffer = ShortArray(bufferSize) 这是 Kotlin 代码,但根据 stdlib documentation ,此语
我从我的应用程序中集成的 crittercism 工具获得了 SIGSEGV/SEGV_ACCERR 崩溃报告,这是因为拍摄视频并在从 sleep 模式恢复后将应用程序置于 sleep 模式 15-2
我真的不知道这是怎么发生的。我有一个使用 ARC 的应用程序。大多数我的 View Controller 都注册了 NSNotifications。所有注册都在主线程上完成。 当发生内存警告时,用于每
我在现场有一个应用程序在前台崩溃。我在 Root View Controller 中有一个 MKMapView。这个 Root View Controller 在顶部显示了一个模态视图 Control
我猜测这个问题是生命周期问题。该应用程序收到内存警告并尝试卸载一些用户界面项目。但我不是 100% 确定如何在堆栈跟踪上最后报告的项目的上下文中解释错误。 Exception Type: SIGSE
当使用 NSFileManager 在后台线程中获取文件大小时,我遇到了奇怪的崩溃。 我有一个名为 localFileSize 的歌曲对象的属性: - (unsigned long long)loca
从 JNI 调用 C++ 代码时遇到问题。代码在普通 C++ 中运行,但当我尝试从 Java 调用它时似乎有错误,我认为我编译/链接的东西不正确。任何人都可以找出问题所在吗? 我正在使用 arm-ma
嗨,伙计们,我没有太多的 Android 经验,但我接到了一项让我很难过的任务。我收到错误 A/libc: Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR
我只在使用 Android 操作系统版本 10 的 OnePlus、三星、Poco F1 中遇到此问题。 它适用于搭载 Android 10 的 Pixel 设备。 请在下面找到错误日志 Build
我是一名优秀的程序员,十分优秀!