我启用了NSZombie,当我运行我的应用程序时,我在控制台中收到以下消息:
*** -[UIViewAnimationState release]: message sent to deallocated instance 0xf96d7e0
Run Code Online (Sandbox Code Playgroud)
这是执行动画的方法
-(void)loadAvatar:(STObject*)st
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
avatar.alpha = 0;
avatar.frame = avatarRectSmall;
avatar.image = [ImageCache getMemoryCachedImageAtUrl:st.avatar_url];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.50];
avatar.frame = avatarRectNormal;
[avatar setAlpha:1];
[UIView commitAnimations];
[pool release];
pool = nil;
}
Run Code Online (Sandbox Code Playgroud)
我有时候并不会总是崩溃.我想知道什么是发布的?
我试图UITextView在基本视图中使用简单,但它会导致应用程序偶尔崩溃.有时它在我输入内容时崩溃,有时当我滚动时,有时在我按下返回键后.从堆栈跟踪看,它看起来像是由图形或动画相关代码引起的,用于渲染用于拼写检查,语法检查等的UI元素.
为什么这会让我的应用程序崩溃?我是否需要导入其他库,还是需要为UITextView指定某种委托?我确实只是在准系统视图中有一个简单的UITextView,没什么特别的.
这是堆栈跟踪:
Program received signal: “EXC_BAD_ACCESS”.
(gdb) bt
#0 0x9535f9b1 in ?? ()
#1 0x9534c33f in ?? ()
#2 0x9534c13e in ?? ()
#3 0x9634df5c in ?? ()
#4 0x9418d244 in CGDataProviderRetain ()
#5 0x963b7036 in ?? ()
#6 0x98263486 in CGImageReadCreateWithProvider ()
#7 0x982633a2 in CGImageSourceCreateWithDataProvider ()
#8 0x020c0947 in CGImageCreateWithPNGDataProvider ()
#9 0x02ebfeed in WKGraphicsCreateImageFromBundleWithName ()
#10 0x02ebfc3b in WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar ()
#11 0x02ebf9cb in WebCore::InlineTextBox::paintSpellingOrGrammarMarker ()
#12 0x02e73932 in WebCore::InlineTextBox::paintDocumentMarkers ()
#13 0x02e730a1 in WebCore::InlineTextBox::paint …Run Code Online (Sandbox Code Playgroud) 将表中的行数设置为零时,我的UITableView出现一致崩溃。它因EXC_BAD_ACCESS错误而崩溃。崩溃是UITableView的内部问题,所以我无法直接查看出了什么问题,尽管这对我来说应该是一个愚蠢的错误。
堆栈跟踪如下:
#0 0x0194ca60 in objc_msgSend ()
#1 0x00656837 in -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] ()
#2 0x0064c77f in -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] ()
#3 0x00661450 in -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] ()
#4 0x00659538 in -[UITableView layoutSubviews] ()
#5 0x00d39451 in -[CALayer layoutSublayers] ()
#6 0x00d3917c in CALayerLayoutIfNeeded ()
#7 0x00d3237c in CA::Context::commit_transaction ()
#8 0x00d320d0 in CA::Transaction::commit ()
#9 0x00d627d5 in CA::Transaction::observer_callback ()
#10 0x013a3fbb in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#11 0x013390e7 in __CFRunLoopDoObservers ()
#12 0x01301bd7 in __CFRunLoopRun ()
#13 0x01301240 in CFRunLoopRunSpecific ()
#14 0x01301161 in …Run Code Online (Sandbox Code Playgroud) 我有功能,它收到2个参数 - 图像和数字.下面的函数抛出EXC BAD ACCESS行"imgData = UIImageJPEGRepresentation(image,1.0);".我不知道为什么:-(任何想法?
- (void)saveImages:(UIImage*)image row:(int)row {
if (image != nil) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString* path1 = [documentsDirectory stringByAppendingPathComponent:
[NSString stringWithFormat:@"%i.JPEG", row]];
NSString* path2 = [documentsDirectory stringByAppendingPathComponent:
[NSString stringWithFormat:@"%is.JPEG", row]];
NSData* imgData;
imgData = UIImageJPEGRepresentation(image, 1.0);
[imgData writeToFile:path1 atomically:YES];
[self rotateIcon:image];
image = [self imageWithImage:image];
NSData* smalImgData = UIImageJPEGRepresentation(image, 1.0);
[smalImgData writeToFile:path2 atomically:YES];
}
}
Run Code Online (Sandbox Code Playgroud) cocoa-touch image exc-bad-access uikit uiimagejpegrepresentation
虽然MGTwitterEngine在以前版本的iOS上运行良好,但是当我尝试发布twit时,它在EXC_BAD_ACCESS失败了:
[twitter sendUpdate:textToShare];
Run Code Online (Sandbox Code Playgroud)
Objective-C代码执行器的最后一个列表是:
[theRequest prepare];
Run Code Online (Sandbox Code Playgroud)
在SA_OAuthTwitterEngine.m中.这是调用堆栈:
#1 0x00045a63 in -[OAMutableURLRequest URLEncodedString:] at /Users/ben/Dropbox/Dev/External Projects/Twitter-OAuth-iPhone/OAuthConsumeriPhoneLib/OAuthConsumerSrc/OAMutableURLRequest.m:287
#2 0x000445fa in -[OAMutableURLRequest prepare] at /Users/ben/Dropbox/Dev/External Projects/Twitter-OAuth-iPhone/OAuthConsumeriPhoneLib/OAuthConsumerSrc/OAMutableURLRequest.m:131
#3 0x00041778 in -[SA_OAuthTwitterEngine _sendRequestWithMethod:path:queryParameters:body:requestType:responseType:] at /Developer/WorkShop/XDictionary/trunk/Dictionary/Twitter+OAuth/SAOAuthTwitterEngine/SA_OAuthTwitterEngine.m:325
#4 0x000356b1 in -[MGTwitterEngine sendUpdate:inReplyTo:] at /Developer/WorkShop/XDictionary/trunk/Dictionary/Twitter+OAuth/MGTwitterEngine/MGTwitterEngine.m:1037
#5 0x0003546c in -[MGTwitterEngine sendUpdate:] ()
#6 0x00023ae7 in -[SocialNetworking twitterShare] ()
#7 0x00023c2b in -[SocialNetworking OAuthTwitterController:authenticatedWithUsername:] ()
#8 0x0003d0d5 in -[SA_OAuthTwitterController gotPin:] ()
#9 0x0003eabb in -[SA_OAuthTwitterController webViewDidFinishLoad:] ()
#10 0x0051736a in -[UIWebView webView:didFinishLoadForFrame:] ()
#11 0x00518956 in -[UIWebViewWebViewDelegate webView:didFinishLoadForFrame:] ()
#12 …Run Code Online (Sandbox Code Playgroud) 执行此行时,我在iOS中频繁出现EXC_BAD_ACCESS崩溃:
while (sqlite3_step(statement) == SQLITE_ROW) {
}
Run Code Online (Sandbox Code Playgroud)
它用于在我的(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 功能中提供结果.
有任何想法吗?SQL等看起来很好,数据库正在后台线程中更新,之后我调用前台线程来更新UI.
我在网络线程中遇到了一个奇怪的崩溃,发布了一个URLResponse.我没有直接操作URLCache的内容,那么这个问题可能是什么原因呢?
这是崩溃日志供参考:
Incident Identifier: E4116BAA-7467-42F8-B28E-7A1FA2D12278
CrashReporter Key: dcaac993b4bfa7e5015f07b0ffc611182b196e57
Hardware Model: iPad2,1
Process: *** [6299]
Path: /var/mobile/Applications/
Identifier: ***
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-06-25 11:11:59.347 +0800
OS Version: iPhone OS 5.0.1 (9A405)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x42810008
Crashed Thread: 2
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x30367010 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x30367206 mach_msg + 50
2 CoreFoundation 0x37cea41c __CFRunLoopServiceMachPort + 120 …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我正在删除(或尝试删除)来自两个核心数据存储的所有记录,然后再添加新的记录.它们是2个简单的存储,包含与地址簿中的记录相关的数据(VIContacts包含联系人ID和vcard哈希(整数),VIGroup包含组ID和组名).
要从商店中删除所有联系人,我使用这段代码,在一个名为的方法中-clear::
NSArray *allOldRowsInVIContacts = [[mainContext fetchObjectsForEntityName:[VIContact name]
includePropertyValues:NO
withPredicate:nil] copy];
for (NSManagedObject *obj in allOldRowsInVIContacts) {
@try {
[mainContext deleteObject:obj];
}
@catch (NSException *exception) {
NSLog(@"Exception Triggered: %@", exception.reason);
[NSException raise:exception.reason format:@"thrown on vicontacts."];
}
}
[allOldRowsInVIContacts release];
if (![mainContext save:error]) {
return NO;
}
NSArray *allOldRowsInVIGroups = [[mainContext fetchObjectsForEntityName:[VIGroup name]
includePropertyValues:NO
withPredicate:nil] copy];
NSLog(@"all rows in VIGroups count: %d", [allOldRowsInVIGroups count]);
for (NSManagedObject *obj in allOldRowsInVIGroups) {
@try {
[mainContext deleteObject:obj];
}
@catch (NSException *exception) { …Run Code Online (Sandbox Code Playgroud) 偶尔我会收到此错误:
EXC_BAD_ACCESS Code: KERN_INVALID_ADDRESS at 0x13421772123
Run Code Online (Sandbox Code Playgroud)
它发生在下面的save:行中(在CoreDataController单例类中)
NSError *error = nil;
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil) {
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这不是很多代码,但从经验来看,这是有共同的原因,以及任何方法来防止这个应用程序崩溃?
我得到一个间歇性的错误,证明很难调试.
我从以下方法得到以下错误
Core Data Fetch上的EXC_BAD_ACCESS(代码= 1,地址= 0x10)
class func getAll(context: NSManagedObjectContext) -> [Tag] {
var returnValue: [Tag] = []
do {
let fetchRequest = NSFetchRequest(entityName: Tag.entityName())
returnValue = try context.executeFetchRequest(fetchRequest) as! [Tag]
} catch {
}
return returnValue
}
Run Code Online (Sandbox Code Playgroud)
这个错误是间歇性的,并且只发生在每几百个会话中,但是出现频繁,我需要处理它.代码中断了returnvalue = try context.execute...
fetchRequest的不是nil context的不是nil我已经打开了NSZombieFlag来试图查看某个内存是否在某个地方被释放然后被访问,但是我对这导致了什么感到难过.任何想法或见解将不胜感激.
exc-bad-access ×10
objective-c ×5
ios ×4
iphone ×4
core-data ×3
cocoa-touch ×2
ios5 ×2
image ×1
ipad ×1
macos ×1
nsurlcache ×1
sqlite ×1
swift ×1
uikit ×1
uitableview ×1
uitextview ×1