美文网首页
oc 属性生成器

oc 属性生成器

作者: xq9527 | 来源:发表于2021-03-18 12:01 被阅读0次

我们在上一节讲到 我们需要实例化对象然后 进行赋值 我们需要定义变量 然后定义和实现set get 方法 这写起来 很麻烦 ios 提供了属性生成器 给我方便简化我们的代码的书写

//
//  Person.h
//  Attributegenerator
//
//  Created by xuqing on 2021/3/18.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Person : NSObject
// 用属性生成器
@property NSString * name;
@property NSUInteger age;
@property NSString * sex;
@end
NS_ASSUME_NONNULL_END

我们只需要在我们的类的.h文件 中定义变量的时候 前面加上 @property 然我们再main.m的入口方法中直接 调用

//
//  main.m
//  Attributegenerator
//
//  Created by xuqing on 2021/3/18.
//

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        Person* person= [[Person alloc]init];
        person.name=@"张冰";
        person.age=22;
        person.sex=@"女";
        
        NSLog(@"%@", person.name);
        NSLog(@"%zd", person.age);
        NSLog(@"%@", person.sex);
        
    }
    return 0;
}

属性的约束

// 属性约束
// 1 线程安全相关(原子性)
// 2》atomic (原子操作)(默认)
//  》nonatomic(非原子操作)
//一般情况下 都使用》nonatomic 可以提高程序的执行效率
//2 内存管理相关
// 》MRC 下 retain (强引用),copy (强引用), assgin (弱引用, 赋值, 默认)
// 》ARC 下 strong(强引用) weak (弱引用)
// 3 读写属性相关
// 》 readwrite (同时生成setter 和getter 方法)默认
// 》readonly (只会生成 getter 方法)
//4 重命名相关
//》setter方法重命名 方法名车后必须附带一个 :
//》getter  方法重命名

我们直接实例化我们的person类 然后直接用点语法给我们类的属性分别赋值


image.png

我们观察日志的输出 我们通过属性生成器一样可以达到属性的赋值和取值大大的简化了我们的代码

相关文章

  • iOS基础之Objective-C(一)

    OC面向对象新增语法:1、属性生成器: @property //声明属性例:@property (nonatomi...

  • oc 属性生成器

    我们在上一节讲到 我们需要实例化对象然后 进行赋值 我们需要定义变量 然后定义和实现set get 方法 这写起...

  • OC get set 方法理解

    OC get set 方法理解 get set方法不能同时重写 最近在了解oc的属性,oc的属性组成是由成员变量+...

  • 属性 - OC

    atomic原子操作。原子性是指事务的一个完整操作,在objective-c 属性设置里面默认的就是atomic,...

  • OC:属性

    目录 属性演变过程 属性定义 属性扩展 属性演变过程 上篇博文《OC学习备忘录:成员变量、方法》中演示了如何声明成...

  • python语法入门六

    属性访问 描述符 迭代器 生成器 模块导入 包 查询功能 属性访问 描述符 定制容器 迭代器 生成器 模块导入 f...

  • iOS属性

    什么是属性 属性是OC语言中的一个机制,我们在OC中用@property来声明一个属性,其实@property是一...

  • 小谈@property的特质

    熟悉OC的小伙伴都会经常用到property(属性),属性是OC语言的一种特性,主要作用是封装对象中的数据,OC对...

  • 关于为何view.frame.size.width = *报错

    OC语法规定:OC对象的结构体属性的成员变量无法直接赋值, 但是可以给OC对象的结构体属性赋值 也就是说 可以直接...

  • iOS 编写高质量代码(二)

    这篇将从面向对象的角度分析如何提高OC的代码质量。 一、理解“ 属性 ”这一概念 属性(@property)是OC...

网友评论

      本文标题:oc 属性生成器

      本文链接:https://www.haomeiwen.com/subject/nkmucltx.html