坚持我。我有视觉障碍,以前从未使用过此网站,并且可能不会按照您习惯的格式进行发布。我对此处的任何无意失礼表示歉意。为什么我的单身人士课程不能返回一个值将保持在范围内
在iOS的项目中使用的Objective-C ...
我有一个单独的类中,这似乎是对Objective-C的通常的方式成立。它主要是一系列接受NSString值的方法,解释它们并返回其他内容。在下面的代码中,我将事物简化到最低限度,以强调我遇到的问题。
从单例类:
- (NSUInteger) assignControlState:(NSString *)state {
// excerpted for clarity...
return UIControlStateNormal; // an example of what might be returned
}
现在,另一个类的一个实例,试图用这种方法,像这样:
- (void) buttonSetup:(UIButton*)button {
[button setTitle:@"something" forState:[[SingletonClass accessToInstance] assignControlState:@"normal"]];
}
此代码实际工作。 HOwever,当系统绘制包含按此方式设置标题的按钮的UI时,会发生EXC_BAD_ACCESS错误。
如果assignControlState方法被移入与buttonSetup方法相同的类中,则不会生成错误。
我猜这是关于苹果公司内存管理的一些事情,我没有完全理解,以及事情如何进出范围,但对于我的生活,我无法弄清楚我在哪里出错了。
HO有人可以帮忙。谢谢。
很难说这些代码行。从附加的调试器开始(不仅仅是调试模式),您将获得非常有用的信息。 – Eiko 2010-11-08 23:53:02
这与范围无关。这只是不正确的内存管理,通常与Objective-C中的范围无关。 – Chuck 2010-11-08 23:59:54