Objective-c protocol 练习

题目描述:

请使用 Objective-C 中的 @protocol 协议机制,实现一个简易的门禁控制系统。

系统包含两个类:

  1. AccessControlSystem ------ 门禁系统,用于执行开门操作;
  2. Admin ------ 实现权限判断逻辑的管理员。

要求如下:

  • 定义一个名为 AccessControlDelegate 的协议,包含一个方法 - (BOOL)canAccess

  • AccessControlSystem 类中持有一个 AccessControlDelegate 类型的 delegate

  • 当调用 openDoor 方法时,根据 delegate 返回的权限判断是否允许开门;

    • 如果有权限,输出:Door opened successfully!
    • 如果无权限,输出:Access denied! You don't have permission to open the door.

Admin 类定义如下:

objective-c 复制代码
@interface Admin : NSObject <AccessControlDelegate>
- (BOOL)canAccess;
@end

面试目标:

考察候选人对 Objective-C 协议(@protocol)、委托模式(Delegate Pattern)以及基本类设计和方法调用的掌握程度。

相关推荐
你怎么知道我是队长1 小时前
GO语言---匿名函数
开发语言·后端·golang
lansye1 小时前
侃侃AI编程
开发语言·qt·ai编程
uyeonashi2 小时前
【QT】窗口详解
开发语言·c++·qt·学习
Hello eveybody3 小时前
C++介绍整数二分与实数二分
开发语言·数据结构·c++·算法
jmlinux4 小时前
从 C 语言计算器到串口屏应用
c语言·开发语言
Mallow Flowers5 小时前
Python训练营-Day31-文件的拆分和使用
开发语言·人工智能·python·算法·机器学习
Sunshine~L&H5 小时前
Mac 上使用 mysql -u root -p 命令,出现“zsh: command not found: mysql“?如何解决
数据库·mysql·macos
云边小网安6 小时前
java集合篇(六) ---- ListIterator 接口
java·开发语言·青少年编程·java集合
不被定义的程序猿6 小时前
Golang 在 Linux 平台上的并发控制
开发语言·后端·golang
陈旭金-小金子6 小时前
发现 Kotlin MultiPlatform 的一点小变化
android·开发语言·kotlin