MacDev 板


LINE

※ 引述《aecho (星空下的鲔鱼)》之铭言: : 如题, : 像 C++里,可以在super class里宣告pure virtual function, : 然後sub class在compiler时, : 就会被提醒一定要完成这些pure virtual function。 : 那如果在objective-c 里,要怎麽做到这样的事情呢? : protocol虽然有@require和@optional, : 但是这种情形很像是,在super class底下是@optional : 而sub class却是@require~~ 对 C++ 不了解, 不过看最後两行应该是这样... 例如你有一个 class 叫 Race, 有两个 subclass 叫 Asian 和 Caucasian 然後 Asian 和 Caucasian 都有 method -dressUp 所以你打算在 Race 里加上这个方法, 但不希望 Race 里的方法被呼叫 那你可以在 Race.m 里的 -dressUp 呼叫 NSException 的 +raise: format: 这样如果呼叫了 Race 的 -dressUp, 或者呼叫 subclass 的 -dressUp 而忘了覆写 编译器应该就会丢出 exception 让你知道 好像还有一种作法是用 NSObject 的 -doesNotRecognizeSelector: 可以自己去查查参考文件实验看看, 我没试过... 这东西好像叫做 abstract methods, 不知道跟你要的一不一样 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.72.123
1F:推 atst2:@interface SUPER: NSObject {} @end 08/18 13:42
2F:→ atst2:@interface SUB: SUPER<PROTOCOL> {}@end 08/18 13:43
3F:→ atst2:改成这种做法会不会比较符合原PO想做的事? 08/18 13:43
4F:推 aecho:这个function是会在super class里呼叫的… 08/18 16:05
5F:→ aecho:但是他会依照sub class的实作,而转而呼叫sub class所实作的 08/18 16:05
6F:→ aecho:function~~ 08/18 16:06
7F:→ aecho:因为我想把演算法都写在super class,而由sub class提供不同 08/18 16:06
8F:→ aecho:情形下的实作方法,但都是套用super class一致的演算法 08/18 16:07
9F:→ aecho:谢谢u大 ^^ 我去看一下doesNotRecognizeSelector~~ ^^ 08/18 16:07
10F:→ aecho:的确是abstract methods ^^ 08/18 16:08
11F:→ atst2:有点奇怪,即然super会呼叫到,那所谓sub class不同的实作是? 08/18 18:58
12F:→ atst2:是不是有可能,你的methods权责没拆乾净? 08/18 18:59
13F:→ atst2:感觉上你想做的事比较像是template在做的... 08/18 18:59
14F:→ adrianshum:楼上: 参考一下 template method pattern 吧 :) 08/20 10:42







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP