欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OC -- @property

程序员文章站 2024-01-14 22:33:34
...

建立一个Person类

@interface --> @end ==> .h中类的声明
@implementation --> @end ==> .m 中类的实现
@property(nonatomic,assgin/copy/strong) 属性类型 属性名(不需要'_') ==> .h 中属性声明

@property:
创建属性和属性的set/get 方法
产物:->1.'_'属性 2.set方法 3.get方法

@property 声明属性的关键字
1.原子性:nonatomic -> 在多线程环境下,不存在线程保护 -->速度快(建议使用)
2.类型:assign -> 属性类型是 BOOL int long float double NSInteger
copy -> 字符串 NSString
strong/retain -> (除了字符串以外的)对象类型
3.读写性:readwrite -> set 和 get 可读可写
readonly -> get 只读
读写性可以省略 -->默认是 readwrite

属性名称不需要加下划线 -> 产生的属性自带 '_'

Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property(nonatomic,copy)NSString *name;
@property(nonatomic,assign,readwrite)int age;
@propert(nonatomic,strong)int idcard;

@end

Person.m

#import "Person.h"
@implementation Person

@end

main.m

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

int main(int argc, const char *argv[])
{  
  @autoreleasepool
  {
    Person *p = [[Person alloc]init];

    //1.构造
    int age = 18;
    NSString *string = @"呆毛";
    int idcard = 1234567890987;

    //2.写入
    [p setAge:age];
    [p setName:string];
    [p setIdcard:idcard];

    3.读取
    NSLog(@"age -> %d",[p age]);
    NSLog(@"name -> %@",[p name]);
    NSLog(@"idcard -> %d",[p ])
  }
  return 0;
}

上一篇: Weak

下一篇: swift deinit 不被执行