MST

星途 面试题库

面试题:Objective-C中隐藏方法声明语法的基础应用

在Objective-C中,简述使用隐藏方法声明语法的一般场景,并举例说明如何在类的.m文件中隐藏一个方法的声明,同时在类的其他方法中调用这个隐藏声明的方法。
49.0万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

一般场景

  1. 封装内部逻辑:当某些方法仅用于类的内部实现,不希望外部类直接访问时,可以隐藏方法声明。这样可以保持接口的简洁性,同时避免外部调用可能导致的错误。例如,一个数据处理类,内部有一些数据预处理的方法,这些方法对于外部使用该类的开发者来说不需要关心,只需要调用最终处理结果的公开方法即可。
  2. 安全和保护:防止外部类意外调用一些可能破坏类内部状态的方法。比如,一个数据库操作类,有一个用于直接修改数据库底层数据结构的方法,这个方法如果被外部随意调用可能会导致数据损坏,所以将其隐藏。

在类的.m文件中隐藏方法声明并调用

假设我们有一个Person类,以下是示例代码:

  1. Person.h文件
#import <Foundation/Foundation.h>

@interface Person : NSObject

- (void)publicMethod;

@end
  1. Person.m文件
#import "Person.h"

@interface Person ()
// 隐藏方法声明
- (void)hiddenMethod;
@end

@implementation Person

- (void)publicMethod {
    NSLog(@"执行公开方法");
    // 调用隐藏方法
    [self hiddenMethod];
}

- (void)hiddenMethod {
    NSLog(@"执行隐藏方法");
}

@end

在上述代码中,hiddenMethod方法在Person.m文件中的类扩展(@interface Person ())中声明,这使得该方法对于外部类是隐藏的。在publicMethod中可以正常调用hiddenMethod