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)以及基本类设计和方法调用的掌握程度。

相关推荐
maizeman12618 分钟前
用R语言生成指定品种与对照的一元回归直线(含置信区间)
开发语言·回归·r语言·置信区间·品种测试
脚踏实地的大梦想家37 分钟前
【Go】P17 Go语言并发编程核心:深入理解 Goroutine (从入门到实战)
java·开发语言·golang
初学小白...42 分钟前
线程同步机制及三大不安全案例
java·开发语言·jvm
数据饕餮2 小时前
faster-whisper热词详解与程序设计
ide·macos·xcode
用坏多个鼠标2 小时前
Nacos和Nginx集群,项目启动失败问题
java·开发语言
满天星83035772 小时前
【C++】右值引用和移动语义
开发语言·c++·redis·visual studio
消失的旧时光-19432 小时前
c语言 内存管理(malloc, calloc, free)
c语言·开发语言
歪歪1003 小时前
在C#中除了按属性排序,集合可视化器还有哪些辅助筛选的方法?
开发语言·前端·ide·c#·visual studio
李高钢3 小时前
c#获取当前程序所在目录避坑
开发语言·数据库·c#
IT北辰3 小时前
用 Python 实现连续数据分组求和并回写
开发语言·python