当我运行以下代码时,应用程序刚刚退出?
感谢...
#import <UIKit/UIKit.h>
@interface dogViewController : UIViewController {
}
@end
/////////////////////////////////////////
#import "dogViewController.h"
#import "puppy.h"
@implementation dogViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"start");
puppy *w;
int r = [w waldo];
NSLog(@"%d",r);
}
- (void)dealloc {
[super dealloc];
}
@end
////////////////////////////////////////
#import <Foundation/Foundation.h>
@interface puppy : NSObject {
}
-(int) waldo;
@end
///////////////////////////////////////
#import "puppy.h"
@implementation puppy
-(int) waldo{
return (int)29;
}
@end
答案 0 :(得分:2)
您似乎在没有实例化的情况下引用w。 为了能够将waldo发送到w,您需要分配并初始化它。
puppy *w = [[puppy alloc] init];
// now w is created so it you can call methods on it...
int r = [w waldo];
答案 1 :(得分:1)
puppy *w;
没有做任何有用的事情,它只是声明一个小狗变量。你必须实际初始化一个,例如:
puppy *w = [[puppy alloc] init];