MST

星途 面试题库

面试题:Objective-C属性访问器方法命名语法规则 - 基础运用

假设有一个Objective-C类,包含一个NSString类型的属性name,按照属性访问器方法命名语法规则,手动写出其默认的getter和setter方法的声明与实现。
11.6万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

声明部分

@interface YourClass : NSObject

@property (nonatomic, copy) NSString *name;

@end

在上述声明中,@property 声明了 name 属性,系统会自动生成默认的访问器方法声明。但手动写的话如下:

@interface YourClass : NSObject

- (NSString *)name;
- (void)setName:(NSString *)name;

@end

实现部分

@implementation YourClass

- (NSString *)name {
    return _name;
}

- (void)setName:(NSString *)name {
    if (_name != name) {
        _name = [name copy];
    }
}

@end

这里在 setter 方法中使用 copy 操作,以确保 name 属性值的不可变性,这符合 NSString 使用 copy 修饰符的常见做法。同时通过比较指针判断是否需要重新赋值,避免不必要的内存操作。