A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Hi围城 于 2014-4-2 17:27 编辑

如题,mj的基础视频里没有提过。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

9 个回复

倒序浏览
本帖最后由 cnchenys 于 2014-4-2 21:40 编辑

类似于Java中的构造方法,
指的是在init的时候,同时给属性变量赋值的方法

比如
@interface Person : NSObject
{
    int _age;
    NSString *_name;
}
- (Person *)initWithAge: (int)age andWithName: (NSString *)name;
+ (Person *)initWithAge: (int)age andWithName: (NSString *)name;//这个类方法在返回Person对象时,就可以给_age和_name赋值,这个就是便利构造器
@end

@implementation Person
- (Person *)initWithAge: (int)age andWithName: (NSString *)name
{
    _age = age;
    _name = name;
}
+ (Person *)initWithAge: (int)age andWithName: (NSString *)name
{
    return [[Person alloc] initWithAge:age andWithName:name];
}
@end


int main()
{
    Person *p  = [Person initWithAge: 10 andWithName: @"jason"];// 在init时就赋值了age和name属性

    return 0;
}



评分

参与人数 1技术分 +1 收起 理由
黑妞~ + 1

查看全部评分

回复 使用道具 举报
1、便利构造器是一种快速创建对象的方式。它本质上是把初始化方法做了一次封装,方便外界使用

      2、便利构造器是一个类方法(以+开头)

      C:\Users\Administrator\Desktop

20130912114602_622.jpg (13.56 KB, 下载次数: 166)

20130912114602_622.jpg

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
cnchenys 发表于 2014-4-2 16:09
类似于Java中的构造方法,
指的是在init的时候,同时给属性变量赋值的类方法

非常感谢!
回复 使用道具 举报
cnchenys 发表于 2014-4-2 16:09
类似于Java中的构造方法,
指的是在init的时候,同时给属性变量赋值的类方法

可是内方法不是不能访问成员变量么?
回复 使用道具 举报
本帖最后由 cnchenys 于 2014-4-2 21:41 编辑
Hi围城 发表于 2014-4-2 17:43
可是内方法不是不能访问成员变量么?

通过对象方法调用
回复 使用道具 举报
Hi围城 发表于 2014-4-2 17:43
可是内方法不是不能访问成员变量么?

为什么不能访问
回复 使用道具 举报
遇到了同样的问题,呵呵
回复 使用道具 举报
学习了           
回复 使用道具 举报
学习了 赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马