【发布时间】:2011-10-01 01:45:23
【问题描述】:
我有一个家庭作业问题让我很困惑,非常糟糕。下面是一个问题的简要说明。
假设您正在开发一个存储联系人的应用程序 信息。地址簿可能包含许多实体类型,例如人类 是,公司或任何其他有联系信息的东西。
- 现在不再显式检查每个对象类型,而是编写一个 声明对象必须如何表现和成功的协议 出现在您的通讯录中。
我回答这个问题的理解和努力是,
构建一个协议,在
@required标签下对各类联系信息有通用方法。以及@optional下的所有其他在不同联系人中不相似的方法(例如传真号码与公司相关但与人无关......)。在运行时,您可以使用selector检查对象是否响应任何给定的方法。 怀疑:但是这又是间接地显式检查对象类型,对吗?我的第二个想法是在 java 中使用类似
abstract class的东西。这意味着从抽象类继承的类实现了自己的抽象方法。作为一个天真的 iOS 开发人员,我怎么不知道如何实现呢?我不确定这是否能解决我的问题。如果有人知道这一点,我希望得到启发。
到目前为止完成的外部阅读,如果我正在寻找的答案在这些链接之一中,请告诉我。我会再读一遍以理解和解决这个问题:)。谢谢。
【问题讨论】:
-
提出家庭作业问题的绝佳方式。 +1 关注catb.org/esr/faqs/smart-questions.html
-
此链接清楚地解释了协议概念tutorialspoint.com/ios/ios_delegates.htm
标签: objective-c ios protocols typechecking