Ios 目标c方法不打印
我对目标c还不熟悉,我想通过制作一个简单的程序来练习。由于某些原因,打印方法将无法运行。有什么想法吗Ios 目标c方法不打印,ios,objective-c,Ios,Objective C,我对目标c还不熟悉,我想通过制作一个简单的程序来练习。由于某些原因,打印方法将无法运行。有什么想法吗 #import <Foundation/Foundation.h> @interface person: NSObject { //----Variables---- int age; } //----Methods---- -(void) print; -(void)setAge: (int) a; @end @implement
#import <Foundation/Foundation.h>
@interface person: NSObject
{
//----Variables----
int age;
}
//----Methods----
-(void) print;
-(void)setAge: (int) a;
@end
@implementation person
-(void) print{
NSLog(@"You are %i years old!", age);
}
-(void) setAge: (int) a{
age=a;
}
@end
int main(int argc, char *argv[]){
@autoreleasepool{
person *alex; alex = [person alloc];
[alex setAge:12];
[alex print];
return 0;
}
}
#导入
@接口人:NSObject
{
//----变数----
智力年龄;
}
//----方法----
-(作废)打印;
-(无效)设置:(int)a;
@结束
@执行人
-(作废)打印{
NSLog(@“您已%i岁!”,年龄);
}
-(无效)设置:(int)a{
年龄=a;
}
@结束
int main(int argc,char*argv[]){
@自动释放池{
person*alex;alex=[person alloc];
[alex setAge:12];
[alex print];
返回0;
}
}
个人*alex;alex=[个人分配]代码>是问题所在--您从未初始化过对象
person*alex=[[person alloc]init]代码>是完成此操作的常用方法
person*alex=[person new]
是一个很好的快捷方式(仅当您使用标准的init
方法时);alex=[个人分配]代码>是问题所在--您从未初始化过对象
person*alex=[[person alloc]init]代码>是完成此操作的常用方法
person*alex=[person new]
是一个很好的快捷方式(仅当您使用标准的init
方法时);alex=[个人分配]代码>是问题所在--您从未初始化过对象
person*alex=[[person alloc]init]代码>是完成此操作的常用方法
person*alex=[person new]
是一个很好的快捷方式(仅当您使用标准的init
方法时);alex=[个人分配]代码>是问题所在--您从未初始化过对象
person*alex=[[person alloc]init]代码>是完成此操作的常用方法
person*alex=[person new]
是一个很好的快捷方式(仅当您使用标准的init
方法时)。首先,您需要初始化对象
person *alex = [[person alloc] init];
首先,您需要初始化对象
person *alex = [[person alloc] init];
首先,您需要初始化对象
person *alex = [[person alloc] init];
首先,您需要初始化对象
person *alex = [[person alloc] init];
- 按照惯例,类名应该以大写字母开头,因此它应该是
Person
,而不是Person
- 您通过
[person alloc]
(同样,应该是[person alloc]
)分配了对象的实例,但尚未对其进行初始化。您需要调用初始值设定项,如[[Person alloc]init]
中所示。(在这种特殊情况下,这不是绝对必要的,但请始终这样做)
除此之外,该计划还有效。我在调试控制台中得到以下信息:
2013-10-19 15:20:10.757 Test[13551:303] You are 12 years old!
Program ended with exit code: 0
- 按照惯例,类名应该以大写字母开头,因此它应该是
Person
,而不是Person
- 您通过
[person alloc]
(同样,应该是[person alloc]
)分配了对象的实例,但尚未对其进行初始化。您需要调用初始值设定项,如[[Person alloc]init]
中所示。(在这种特殊情况下,这不是绝对必要的,但请始终这样做)
除此之外,该计划还有效。我在调试控制台中得到以下信息:
2013-10-19 15:20:10.757 Test[13551:303] You are 12 years old!
Program ended with exit code: 0
- 按照惯例,类名应该以大写字母开头,因此它应该是
Person
,而不是Person
- 您通过
[person alloc]
(同样,应该是[person alloc]
)分配了对象的实例,但尚未对其进行初始化。您需要调用初始值设定项,如[[Person alloc]init]
中所示。(在这种特殊情况下,这不是绝对必要的,但请始终这样做)
除此之外,该计划还有效。我在调试控制台中得到以下信息:
2013-10-19 15:20:10.757 Test[13551:303] You are 12 years old!
Program ended with exit code: 0
- 按照惯例,类名应该以大写字母开头,因此它应该是
Person
,而不是Person
- 您通过
[person alloc]
(同样,应该是[person alloc]
)分配了对象的实例,但尚未对其进行初始化。您需要调用初始值设定项,如[[Person alloc]init]
中所示。(在这种特殊情况下,这不是绝对必要的,但请始终这样做)
除此之外,该计划还有效。我在调试控制台中得到以下信息:
2013-10-19 15:20:10.757 Test[13551:303] You are 12 years old!
Program ended with exit code: 0
lldb是调试器。如果你按下“播放”按钮直到它终止,你应该会得到一个堆栈跟踪。播放按钮在哪里?它在底部面板中。。然而,我复制粘贴了你的代码,没有“init fix”,它实际上是开箱即用的怪异吗?@user2404543我同意没有init
它是怪异的——在你的简单对象中它是有效的,因为显然不需要初始化,但您不应该依赖它工作,因为在更高级的类上,它将绕过类所需的初始化,使事情真正无法工作。lldb是调试器。如果你按下“播放”按钮直到它终止,你应该会得到一个堆栈跟踪。播放按钮在哪里?它在底部面板中。。然而,我复制粘贴了你的代码,没有“init fix”,它实际上是开箱即用的怪异吗?@user2404543我同意没有init
它是怪异的——在你的简单对象中它是有效的,因为显然不需要初始化,但您不应该依赖它工作,因为在更高级的类上,它将绕过类所需的初始化,使事情真正无法工作。lldb是调试器。如果你按下“播放”按钮直到它终止,你应该会得到一个堆栈跟踪。播放按钮在哪里?它在底部面板中。。然而,我复制粘贴了你的代码,没有“init fix”,它实际上是开箱即用的怪异吗?@user2404543我同意没有init
它是怪异的——在你的简单对象中,它可以工作,因为显然不需要初始化,但是你