1

我在 nib 文件中添加了一个类对象。所有连接都已建立。

但是由于某种原因,对象一被创建就被释放。

这是代码:

控制.h:

#import <Foundation/Foundation.h>
@interface control : NSObject 
{
    IBOutlet UILabel *PlayerScore;
}
-(IBAction) addPoint: sender;
-(void) dealloc;
@end

控制.m:

#import "control.h"
@implementation control
-(IBAction)addPoint: sender {
    NSLog(@"Ohhai. Didn't crash."); //Doesn't even make it to this stage.
    int i = [PlayerScore.text intValue];
    PlayerScore.text=[NSString stringWithFormat: @"%d",++i];
}
-(void) dealloc {
    NSLog(@"ZOMGWTF?");
    [super dealloc];
}
@end

这是控制台日志:

[会话开始于 2010-06-09 19:47:57 +1000。]
2010-06-09 19:47:58.771 App[91100:207] ZOMGWTF?

在我单击消息 addPoint 的按钮后,它当然会崩溃。

2010-06-09 19:47:59.703 App[91100:207] *** -[control] performSelector:withObject:withObject:]: 消息发送到已释放实例 0x3843d80

有没有人有任何想法?

4

2 回答 2

0

尝试将 control.h 更改为:

#import <Foundation/Foundation.h>
@interface control : NSObject 
{
    UILabel *PlayerScore;
}
@property (nonatomic, retain) IBOutlet UILabel *PlayerScore;
-(IBAction) addPoint: sender;
-(void) dealloc;
@end

然后将@synthesize 添加到“控制”的实现部分。

另外,谁参考了 NIB 中的控制类?

于 2010-06-09T10:25:09.607 回答
0

尝试从您的 Interface Builder 中删除 ViewController 并使用 File Owner's 作为“控件”。

首先,改变@interface control : NSObject改变@interface control : UIViewController

什么?


啊,你为什么用

-(IBAction) addPoint: sender;

反而

-(IBAction) addPoint:(id) sender;

?

于 2011-01-07T18:29:56.223 回答