iOS中的类、属性的创建、使用流程

OC中每一个类都有一个.h文件和.m文件,

.h文件存放公共的API,其他模块可以调用,

.m文件文件存放私有API和所有的接口实现。

示例:

Card.h 文件:

#import <Foundation/Foundation.h>
@interface Card : NSObject
@property (strong,nonatomic) NSString *contents;
@property (nonatomic,getter=isChosen) BOOL chosen;
@end

Card.m 文件:

#import "Card.h"
// 通过类别声明私有成员
@interface Card()
@property (strong, nonatomic) NSMutableArray *cards;
@end
// 类实现
@implementation Card
@synthesize contents = _contents;
@synthesize chosen = _chosen;
-(instancetype) init
{
    if (self = [super init]) {
	// 初始化设置
    }
    
    return self;
}
// 在getter中初始化成员变量
-(NSMutableArray *) cards
{
    if (!_cards)
        _cards = [[NSMutableArray alloc] init]; 
    return _cards;
}
-(NSString *) contents
{ 
    return_contents;
}
-(void) setContents:(NSString *)contents
{
    _contents = contents;
}
@end

注意:

使用NSObject必须包含头文件  #import<Foundation/Foundation.h>。

@synthesize contents = _contents;  为属性分配实例对象。

@property 语句会自动在 implementation 中生成 @synthesize、getter、setter 语句,但是这些自动生成代码对用户不可见。


在 @property 声明中的几个关键字:

strong 强指针表示,只要强指针指向的这块内存,有至少一个强指针指向它,这块内存就不会从堆中被释放,当没有强指针指向这块内存时,这块内存立即被释放;

weak 弱指针表示,只要弱指针指向的这块内存,有至少一个强指针指向它,则该弱指针也指向它,当没有强指针指向这块内存时,该弱指针被自动设为nil。

一个属性,要么是强指针,要么是弱指针。

nonatomic 非原子性表示,该属性的 getter 和 setter 不是线程安全的,不能有两个线程同时设置该属性。

getter=method 重设getter方法的名称






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值