首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIPickerView问题

UIPickerView问题
EN

Stack Overflow用户
提问于 2010-10-18 21:54:45
回答 5查看 1.5K关注 0票数 1

我有一个非常简单的应用程序,它使用两个组件的UIPickerView,每次我单击它时都会导致崩溃。我通过IB将它拖到我的视图中,然后连接到dataSource并委托给文件的所有者。在.h文件中:

代码语言:javascript
复制
@interface SettingsViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> {

在.m中

代码语言:javascript
复制
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { 
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
NSInteger value;

if (component == 0) {
    value = [tipiDado count];
} else {
    value = [numeroDadi count];
}

return value;
}

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (component == 0) {
    return [tipiDado objectAtIndex:row];
} else {
    return [numeroDadi objectAtIndex:row];
}
}

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
NSLog(@"Selected Dice: %@. Number of Dice: %@", [tipiDado objectAtIndex:row], [numeroDadi objectAtIndex:row]);
}

我不知道为什么它继续给我SIGBART或EXC_BAD_ACCESS...我不知道我哪里做错了。

有什么建议吗?

谢谢大家。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-18 22:01:16

如果不看更多的代码,就很难正确回答。当它崩溃时,您应该能够准确地看到是哪一行导致了崩溃(查看左侧的调用堆栈)。我的猜测是,您的数组(tipiDado或numeroDadi)中的一个没有正确保留,或者存储在其中的对象不是NSString类型。

如果您使用用于初始化问题的代码来更新问题,则更容易指出确切的问题。

票数 2
EN

Stack Overflow用户

发布于 2010-10-18 22:00:29

这可能是因为您的数组(tipiDado和numeroDadi)不再有效。也许它们被设置为自动释放的对象?

您可以做的是在调试模式下启动(调试配置和附加调试器),它应该在它崩溃的行上停止。

票数 1
EN

Stack Overflow用户

发布于 2010-10-18 22:09:30

尝试将分配与zombo检测/引用计数器一起使用,以查看哪个对象是问题所在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3959883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档