0
点赞
收藏
分享

微信扫一扫

OC 中@property readonly 怎么使用

IT影子 2023-05-22 阅读 70

//
//  Student.h
//  test_OC_chind_super_one
//
//  Created by admin on 1/7/16.
//  Copyright © 2016 jeffasd. All rights reserved.
//

#import "Person.h"

@interface Student :  Person

@property(nonatomic, copy)NSString *identifier;

@property(nonatomic, readonly)NSString *name;

@end


//
//  Student.m
//  test_OC_chind_super_one
//
//  Created by admin on 1/7/16.
//  Copyright © 2016 jeffasd. All rights reserved.
//

#import "Student.h"

@implementation Student

@dynamic identifier;     //使用@dynamic后必须要自己实现getter和setter方法

- (instancetype)init
{
    self = [super init];
    if (self != nil) {
//        [self setName:@"456"];
        self.name = @"456"; //本类内可以赋值
    }
    return self;
}

//- (NSString *)identifier
//{
//    return @"3";
//}

//- (NSString *)name
//{
//    return
//}

- (void)setName:(NSString *)name
{
    _name = name;
}

- (void)setIdentifier:(NSString *)identifier
{
    identifier = identifier;
}

@end


//
//  main.m
//  test_OC_chind_super_one
//
//  Created by admin on 1/7/16.
//  Copyright © 2016 jeffasd. All rights reserved.
//

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    
    Student *student = [Student new];
    
    NSString *string = student.name;
    
    NSLog(@"the string is %@", string);
    
//    student.name = @"987"; //报错
    
    return 0;
}

举报

相关推荐

0 条评论