您的位置:首页 > 移动开发 > Objective-C

objective-c(六)文件分离,合成存取方法,方法多参数,局部变量,self使用(未完成)

2012-12-29 22:12 1271 查看
今天我们开始学习objective-c面向对象的第二个基础部分,类的一些基本操作,上篇中演示的程序,主函数以及调用的类接口以及实现部分都在同一个文件中,假如类多了之后这绝对不是一个好的解决办法,这篇我们就来说说如何分离:



我建了如图一个文件,当前显示的编辑窗口是主函数窗口,现在我们去建专门放类的文件,点击菜单栏的file,进去点new,选择file就进入下面这个界面:


选择objective-c class文件,然后next进入下面这个界面



在这个界面填入类名以及父类名,默认NSObject类,因为这是祖宗类,然后next,就进入把新创建的文件放在哪个文件夹下,在group中选择即可,然后文件夹目录就自动多了两个文件


我们看到生成一个后缀为.h一个为.m的文件,分别打开,我们就会看到接口部分放在.h文件中,实现部分放在.m文件里,这样就分离类成功了,后面的例子中我们会用到。

如果有过java开发的就应该用到过eclipse吧,多么强大的一个开发工具啊,还记得里面的getset方法可以自动生成吗?那是多么方便啊,xcode其实也很强大,我们也可以合成getset的方法,下面我就一步步讲一下:

例如,我们要为test类添加a属性和b属性,a属性的getset方法自动生成,b还用原来的方法,然后大家可以看到效果:

interface部分:

#import <Foundation/Foundation.h>

@interface Test : NSObject
@property int a;
@end

implemention部分

#import "Test.h"

@implementation Test
{
int b;
}
@synthesize a;

@end

main部分

#import <Foundation/Foundation.h>
#import "Test.h"

int main(int argc, const char * argv[])
{

@autoreleasepool {
Test *test = [[Test alloc] init];
[test setA:5];
NSLog(@"%i",[test a]);
[test setB:4];
}
return 0;
}

看到结果如图:


总结一下,

(1)要在其他地方调用一个类需要import进去,所以main前面有这么一句#import "Test.h",引入自己的类是双引号,引入系统的类是<>

(2)a可以自动合成getset方法步骤1在interface部分:@property int a;2在implemention部分@synthesize a;,然后我们在主函数里面调用getset方法时,相应的方法就会自动提示出来了,b还是原来的方法,我强制使用setB就报了上面的错

会了getset方法自动合成,我们就开始学习多参数方法,前面用的方法要么是没有参数的,要么是只有一个参数,这次我们写个方法实现一次为a和b都赋值

在interface中

#import <Foundation/Foundation.h>

@interface Test : NSObject
@property int a;
-(void) setTo:(int) a over:(int) b;
-(void) setB:(int) x;
-(int) b;
@end

implementin部分

#import "Test.h"

@implementation Test
{
int b;
}
@synthesize a;

-(void) setB:(int)x{
b = x;
}
-(int) b{
return b;
}
-(void) setTo:(int)x over:(int)z{
a = x;
b = z;
}
@end

main部分

#import <Foundation/Foundation.h>
#import "Test.h"

int main(int argc, const char * argv[])
{

@autoreleasepool {
Test *test = [[Test alloc] init];
[test setTo:3 over:4];
NSLog(@"%i and %i",[test a],[test b]);
}
return 0;
}

这种大家一看就清楚了吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  objective-c ios