UIAlertView中创建EXC_BAD_ACCESS
问题描述:
这里是我的代码:UIAlertView中创建EXC_BAD_ACCESS
#ifdef DEBUG
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"ERROR" message:@"JSON Parsing Error" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
#endif
此代码是在后台线程(负责解析)执行,并且错误仅发生每隔时间。任何想法在这里有什么问题?
答
不要从后台线程中弄乱UI。创建一个方法并在主线程上调用该方法:
[someObject performSelectorOnMainThread:@selector(showDebug:)
withObject:@"JSON Parsing Error"
waitUntilDone:YES];
答
您不应该在单独的线程中执行UI代码。
如果您的应用程序有一个图形用户界面,建议您收到用户有关的活动,并开始从应用程序的主线程界面更新 。此方法有助于避免与处理用户事件和绘图窗口内容相关的同步问题。一些框架,比如Cocoa,通常需要这种行为,但即使对于那些不这样做的行为,在主线程上保持这种行为也具有简化用于管理用户界面的逻辑 的优势。
完美的答案,因为我在的iOS 6.0的问题,其解决了 –