gpt4 book ai didi

iphone - 真的很奇怪 "[UIAccessibilityBundle setWhatever:]: unrecognized selector sent to instance 0xnnnnnnn"

转载 作者:行者123 更新时间:2023-12-01 19:17:37 25 4
gpt4 key购买 nike

所以,我对我的应用程序中发生的一个非常奇怪的崩溃感到困惑。

背景 :我有一个覆盖 UIButton 的类 CustomButton。简而言之,界面如下所示:

@interface CustomButton : UIButton
@property (nonatomic, getter = isLoading) BOOL loading;
@end

执行:
@implementation CustomButton
@synthesize loading = loading_;

- (id)init {
if ((self = [UIButton buttonWithType:UIButtonTypeCustom])) {
[self setTitle:NSLocalizedString(@"My Button", nil) forState:UIControlStateNormal];
[[self titleLabel] setShadowColor:[UIColor blackColor]];
[[self titleLabel] setShadowOffset:CGSizeMake(0, -1)];

[self setContentEdgeInsets:UIEdgeInsetsMake(0, 77, 0, 30)];

UIImage *backgroundImage = [[UIImage imageNamed:@"back.png"] stretchableImageWithLeftCapWidth:77 topCapHeight:0];
UIImage *highlightedBackgroundImage = [[UIImage imageNamed:@"back_highlighted.png"] stretchableImageWithLeftCapWidth:77 topCapHeight:0];
[self setBackgroundImage:backgroundImage forState:UIControlStateNormal];
[self setBackgroundImage:highlightedBackgroundImage forState:UIControlStateHighlighted];

[self sizeToFit];
}

return self;
}

- (void)setLoading:(BOOL)loading {

if (loading_ != loading) {
// Do fancy things
}
}
@end

问题 :我正在尝试在类里面使用按钮,所以我有属性(property)等等:
...
@property(nonatomic, strong) CustomButton *customButton;
...
@syntesize customButton = customButton_;
...
- (void)aMethod {
self.customButton.loading = YES;
}
...

当然,该按钮已初始化。
然后,执行语句 self.bookButton.loading = 是 ,我得到这个错误
 2012-08-28 12:54:25.091 MyApp[9465:15803] -[UIAccessibilityBundle
setLoading:]: unrecognized selector sent to instance 0x8650cc0
2012-08-28 12:54:25.091 MyApp[9465:15803] *** Terminating app due
to uncaught exception 'NSInvalidArgumentException', reason:
'-[UIAccessibilityBundle setLoading:]: unrecognized selector sent to
instance 0x8650cc0'
*** First throw call stack: (0x1ead022 0x203ecd6 0x1eaecbd 0x1e13ed0 0x1e13cb2 0x26bf5 0x257ce 0xfa938f 0xfa96a4 0xfa99a7 0xfb8aea
0x11600be 0x11603c7 0x1160436 0xf10e49 0xf10f34 0xc5bcaac 0xe04b54
0x272e509 0x1de4803 0x1de3d84 0x1de3c9b 0x27887d8 0x278888a 0xee0626
0x14cce 0x27b5 0x1) terminate called throwing an exception

老实说,我不知道要寻找什么。这要么是非常愚蠢的事情,要么是非常微妙的事情。
当然,我已经在 google/stackoverflow 上进行了搜索,但没有找到答案。
据我所知,当对象不“理解”发送的消息时,通常会发生该错误,但情况并非如此。我什至没有收到编译器的警告。

如果您对我可以查找的内容有所了解,或者您想了解更多详细信息,请告诉我,谢谢。

编辑 :忘记指定我正在使用ARC。

更新 :在下面的回答中,Phillip Mills 说这可能是一个过早的内存释放问题。这是一个很好的观点,但 Instrument 没有找到任何僵尸。此外,我在 crashy 语句之前放置了一个日志,在那里我尝试打印有关 CustomButton 对象的信息以及与 UIButton 相关的一些内容,例如标题。一切看起来都很好。标题是我设置的那个,框架在那里等等......所以我相信这个对象(一个实际的 UIButton)存在并且它也是预期的那个。唯一的事情就是搞砸了一切的“加载”属性。

解决方案 : 初始化 方法是问题的根源。它不是初始化按钮子类的实例,而是初始化 UIButton 的实例。因此,因此,找不到“加载”属性。代入 初始化 initWithFrame 并使用标准过程来覆盖初始化程序,一切都很好。
不过,我得到 的原因仍然是个谜UIAccessibilityBundle 作为错误的根源,而不是 用户界面按钮 .

最佳答案

您是否正在向 (CustomButton *) 转换任何内容?在你的应用程序中?仔细检查类型转换 - 你可能错误地转换了不是 CustomButton 的东西并将结果存储在 customButton属性(property)。

关于iphone - 真的很奇怪 "[UIAccessibilityBundle setWhatever:]: unrecognized selector sent to instance 0xnnnnnnn",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com