我有一个崩溃的应用程序没有错误跟踪.如果我调试,我可以看到正在发生的一部分,但无法弄清楚哪个对象是"僵尸".
有谁知道如何在Xcode 4中启用NSZombie?
我的iOS设备上有一个小的sqlitedb.当用户按下按钮时,我从sqlite获取数据并将其显示给用户.
这个抓取部分我想在后台线程中执行它(不阻止UI主线程).我是这样做的 -
[self performSelectorInBackground:@selector(getResultSetFromDB:) withObject:docids];
在获取和稍微处理之后,我需要更新UI.但是因为(作为一种好的做法)我们不应该从后台线程执行UI更新.我这样打电话给selector主线程 -
[self performSelectorOnMainThread:@selector(showResults) withObject:nil waitUntilDone:NO];
但我的应用程序在第一步崩溃了.即启动后台线程.这不是在iOS中启动后台线程的方法吗?
更新1:之后[self performSelectorInBackground....我得到这个堆栈跟踪,没有资料什么那么-

更新2:我甚至试过,开始这样的后台线程 -
[NSThread detachNewThreadSelector:@selector(getResultSetFromDB:) toTarget:self withObject:docids];但我仍然得到相同的堆栈跟踪.
就这样我澄清一下,当我在主线程上执行此操作时,一切运行顺畅......
更新3这是我尝试从后台运行的方法
- (void)getResultSetFromDB:(NSMutableArray *)toProceessDocids
{
SpotMain *mirror = [[SpotMain alloc] init];
NSMutableArray *filteredDocids = toProceessDocids;
if(![gMediaBucket isEqualToString:@""])
filteredDocids = [mirror FetchDocIdsForMediaBucketWithDocID:filteredDocids mBucket:gMediaBucket numRes:-1];
if(![gMediaType isEqualToString:@""])
filteredDocids = [mirror FetchDocIdsForMediaType:filteredDocids mediaType:gMediaType numRes:-1];
if(![gPlatform isEqualToString:@""])
filteredDocids = [mirror FetchDocIdsForPlatformID:filteredDocids platformId:@"1" numRes:-1];
self.resultSet = [mirror FetchObjectFromDocid:filteredDocids];
[filteredDocids release];
[mirror release];
[self performSelectorOnMainThread:@selector(showResults) withObject:nil …Run Code Online (Sandbox Code Playgroud) 这是什么意思?尝试迭代Cocoa obj-c中的文件时出现此错误.
我在网上找不到任何信息.
会感激一些帮助.谢谢.
编辑
我一直在关注本教程(链接)以预加载核心数据.我尝试过创建一个Cococa应用程序,并尝试在我的iPhone应用程序中执行此操作.我认为Core Data的所有设置代码都很好.每当调用此方法时,我都会获得EXEC BAD ACCESS.
- (void)loadInitialData
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// name ZSTREET_1 ZSTREET_2 ZCITY ZZIP ZURL ZTEL latitude longitude
NSString *path = [[NSBundle mainBundle] pathForResource:@"placesdata" ofType:@"txt"];
NSString *fileString = [NSString stringWithContentsOfFile:path]; // reads file into memory as an NSString
NSArray *lines = [fileString componentsSeparatedByString:@"\r"]; // each line, adjust character for line endings
NSManagedObjectContext *context = [self managedObjectContext];
for (NSString *line in lines)
{
NSLog(line);
NSString* string = [[NSString alloc] …Run Code Online (Sandbox Code Playgroud) 我有一个数组,我正在迭代并寻找一个特定的标志.如果标志值为nil,我正在调用一个生成调用对象并返回调用结果的方法.
我的代码结构如下
for(NSString *key in [taxiPlanes allKeys])
{
Plane *currentPlane = [taxiPlanes objectForKey:key];
if(currentPlane.currentAction == nil)
{
NSString *selector = [[currentPlane planeTakeoffSequence] firstObject];
currentPlane.currentAction = selector;
// Calling for NSInvocation in [self ...]
NSArray *action = [NSArray arrayWithArray:[self operationFromTakeoffAction:currentPlane.currentAction AtPoint:currentPlane.position]];
NSLog(@"%@",action);
}
}
Run Code Online (Sandbox Code Playgroud)
生成NSInvocation的方法
-(NSArray *) operationFromTakeoffAction:(NSString *) action AtPoint:(CGPoint) flightPoint
{
NSMethodSignature *methodSignature = [FlightOperations instanceMethodSignatureForSelector:NSSelectorFromString(action)];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature];
[invocation setTarget:fOps];
[invocation setSelector:NSSelectorFromString(action)];
[invocation setArgument:&flightPoint atIndex:2];
NSArray *resultSet = [NSArray alloc]init];
[invocation invoke];
[invocation getReturnValue:&resultSet];
return resultSet; …Run Code Online (Sandbox Code Playgroud) 我的iPhone 4上的测试人员经常收到这个错误 - iPhone 5s,iPad Air,iPad mini没有崩溃,甚至iPhone 3GS都没有.
我认为它与内存有关,但根据仪器我在此操作期间只需要高达14MB,而Crashlytics显示可用内存为120 MB - 所以我想这不是问题,对吧?
还有什么可能是造成这次事故的原因?它在使用FTPManager(https://github.com/nkreipke/FTPManager)下载文件时发生.
3 ... FTPManager.m line 370
-[FTPManager _downloadFile:toDirectory:fromServer:]
24 ... FTPManager.m line 475
-[FTPManager downloadFile:toDirectory:fromServer:]
Run Code Online (Sandbox Code Playgroud) 我完全难过了.我已经调试了一年多,并且在Build Configuration设置为Release时只遇到了这个问题.我已将Build Configuration设置为Debug,并且我已经检查以确保我附加到正确的进程,但在单步执行代码时仍然看不到值.还有其他人遇到过这个问题吗?
这是一个屏幕截图:

值正在返回,但我无法在此方法或任何其他方法中看到ANYTHING的值,我无法弄清楚原因.
感谢您提供给我的任何提示.
==============================更新=================== ===============
我试图打印出有价值的,这是我收到的输出:

但请注意,即使我无法将其打印出来,Variables视图中的值对于结果也是正确的.但其他值,如filePath不应该是nil.
这太奇怪了.
==============================更新=================== ===============
我把断点放在return语句上但仍然没有运气:

这次我看不到结果的价值:

自从切换到XCode 4以来,我一直在寻找如何在iPhone可执行文件中设置环境变量(例如NSZombies)的问题.在XCode 3中,您可以右键单击.app文件,选择"获取信息"并设置环境变量.但是在XCode 4中似乎不可能这样做.新UI中的位置是什么?
当我使用Facebook登录时,我收到以下错误
是的,这是一个基本的错误"无法识别的选择器发送到实例"但我没有得到错误的地方
[UIStatusBar orientation]: unrecognized selector sent to instance 0xa9a9c00
2012-11-23 11:15:46.854 Tattoo Later[1265:1cd03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIStatusBar orientation]: unrecognized selector sent to instance 0xa9a9c00'
Run Code Online (Sandbox Code Playgroud)
在这个方法中
- (void)loginToFacebook:(id) loginDelegate
{
fbServiceRequestingobj = loginDelegate;
NSArray* permissions = [[NSArray alloc] initWithObjects:
@"publish_stream",@"user_birthday",@"read_stream",@"user_about_me",@"offline_access",@"email",@"read_mailbox",@"user_about_me",nil];
[facebook authorize:permissions delegate:self];
}
Run Code Online (Sandbox Code Playgroud)
应用程序崩溃在这一行 [facebook authorize:permissions delegate:self];
在我的项目中,我整合了"GPUImage",我正在研究ios6
提前致谢
我收到Crashlytics的崩溃:
Crashed: com.apple.root.default-overcommit-priority
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x8b2b0353
Thread : Crashed: com.apple.root.default-overcommit-priority
0 myApplication 0x0028f0c4 Parse
1 ??? 0xffffffc9
2 myApplic 0x00291073 ukeylist_get_scan
3 libsystem_pthread.dylib 0x3aac9c5d _pthread_body + 140
4 libsystem_pthread.dylib 0x3aac9bcf _pthread_start + 102
Run Code Online (Sandbox Code Playgroud)
我的问题:
com.apple.root.default-overcommit-priority手段?(也许记忆?)感谢您抽出宝贵时间来帮我解决这个问题.
跳过所有这些信息并跳到底部的更新...
我之前已经处理过无法识别的选择器,但我无法弄清楚这次发生了什么.调用堆栈是不透明的,我无法找出问题的起源.我尝试过使用符号和异常断点.这段代码之前工作得很完美.我再回来研究这个程序了,现在我正在尝试这个
[UITableViewSectionElement numberOfSections]: unrecognized selector sent to instance 0xa285d50
Run Code Online (Sandbox Code Playgroud)
我UITableViews在这个视图控制器中有两个.其中一个被连接起来IB(datasource and delegate).第二个在代码中实例化,其数据源/委托也指向视图控制器.我在第二个tableview上放了一个2的标记,以区分它们.UITableViewTwo添加到a UIView,如果我有要显示的有效数据,它将作为第一个tableview的页脚返回.再一次,这段代码完美地工作,一段时间没有任何崩溃,我似乎无法弄清楚为什么它现在崩溃.我正在使用ARC.
这是一些代码:
当我检查发送选择器的对象的地址是什么时:它确实是一个UITableViewSectionElement.为什么H接收到呼叫号码部分?不应该是numberOfSectionsInTableView吗?
UITableView Delegate/DataSource methods
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView.tag == 0) {
if (indexPath.row == 0) {
PCFCustomNumberReviewsCell *cell = [self.tableViewOne dequeueReusableCellWithIdentifier:@"PCFNumberOfRatings"];
[cell.numberOfReviews setText:[NSString stringWithFormat:@"%d", numReviews.integerValue]];
[cell.numberOfReviews setFont:[PCFFontFactory droidSansFontWithSize:17]];
[cell.numberOfReviews setTextColor:[UIColor lightGrayColor]];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:cell.frame];
[imgView setImage:[UIImage imageNamed:@"1slot2.png"]];
[cell setBackgroundView:imgView];
return cell;
}else if(indexPath.row == 1) {
PCFCustomReviewCell …Run Code Online (Sandbox Code Playgroud) objective-c ×6
ios ×5
xcode ×3
iphone ×2
nszombie ×2
cocoa-touch ×1
crash ×1
ios7.1 ×1
ipad ×1
nsinvocation ×1
uikit ×1
uitableview ×1
xcode4 ×1