iphone – Objective-C私有方式困境

iphone – Objective-C私有方式困境,第1张

概述我知道Objective-C不支持真正的私有方法.我正在做的是声明“私有”方法是将以下内容添加到.m文件类中: @interface MyClass() - (void) privateMethodName;@end 问题: 如果我现在添加一个子类,并想使用这个’私有’方法,我不能!我得到错误: Receiver type ‘SubClassName’ for instance messa 我知道Objective-C不支持真正的私有方法.我正在做的是声明“私有”方法是将以下内容添加到.m文件类中:

@interface MyClass() - (voID) privateMethodname;@end

问题:

如果我现在添加一个子类,并想使用这个’私有’方法,我不能!我得到错误:

Receiver type ‘SubClassname’ for instance message does not declare a
method with selector ‘privateMethodname’

所以,如果我不希望非子类能够访问此方法,但是希望子类能够,我该怎么办?实现我的目标的最佳/正确的方法是什么?

解决方法 您可以将“受保护”界面与公共界面分开.在主标题中,只需声明公共方法:

MyMagicThingy.h:

@interface MyMagicThingy: NSObject- (voID) publicmethod;@end

然后,有一个额外的头与受保护的方法:

MyMagicThingy Protected.h:

#import "MyMagicThingy.h"@interface MyMagicThingy (Protected)- (voID) protectedMethods;@end

您不能在Objective C中具有“真正的”私有/保护/公共方法(如:编译器将强制执行访问规则,所有方法都是公开的).你必须和大会一起去.

总结

以上是内存溢出为你收集整理的iphone – Objective-C私有方式困境全部内容,希望文章能够帮你解决iphone – Objective-C私有方式困境所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1083637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存