我在iOS5中遇到了这个问题,这给我带来了错误,请注意它适用于较旧的sdk。 这是相关代码: h文件 #import
@interface WordListTableViewController : UITableViewController {
//NSMutableDictionary *words;
//NSArray *sections;
}
@end
m文件 #import“WordListTableViewController.h” #import“DefinitionViewController.h”
@interface WordListTableViewController()
@property (nonatomic, strong) NSMutableDictionary *words;
@property (nonatomic, strong) NSArray *sections;
@end
@implementation WordListTableViewController
@synthesize words, sections;
- (NSMutableDictionary *) words
{
if(!words){
NSURL *wordsURL = [NSURL URLWithString:@"http://localhost/Vocabulous.txt"];
words = [NSMutableDictionary dictionaryWithContentsOfURL:wordsURL] ;
}
return words;
}
- (NSArray *) sections
{
if(!sections)
{
sections = [[self.words allKeys] sortedArrayUsingSelector:@selector(compare:)] ;
}
return sections;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"WordListTableViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
//cell.textLabel.text = cell.textLabel.text = [self wordAtIndexPath:indexPath];
cell.textLabel.text = @"Test";
return cell;
}
h App代表文件 #import
@interface VocabAppDelegate : UIResponder <UIApplicationDelegate>
{
}
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UINavigationController *nav;
@end
m App代理文件及相关代码: #import“VocabAppDelegate.h” #import“WordListTableViewController.h”
@implementation VocabAppDelegate
@synthesize window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
WordListTableViewController *wltvc = [[WordListTableViewController alloc] init];
self.nav = [[UINavigationController alloc] initWithRootViewController: wltvc ];
self.window.rootViewController = self.nav;
[self.window makeKeyAndVisible];
return YES;
}
错误如下:EXEC_BAD_ACCESS 它就像只设置可见单元格,当我开始向下滚动查找不可见的单元格时,就像它们无法显示一样。
Fina UPDATE: 根据mattyhoe的建议,我已经用静态文本替换了方法wordAtIndexPath,并按照其他两个侧面注释加上我使用委托的方式,它可以工作!!!
由于
答案 0 :(得分:0)
没有什么看起来不合适,所以很可能是你在wordAtIndexPath中做的工作。要测试这个理论,只需用以下内容替换该行:
cell.textLabel.text = @"Hello";
作为附注,您不需要声明ivars。只需使用@property
s。
此外,您可能希望在分配新单元格时设置附件类型,而不是每次调用此方法时都是如此,因此在条件内部移动它是有意义的。