在Objective-C中为类定义私有方法的最佳方法

在Objective-C中为类定义私有方法的最佳方法,第1张

概述我刚刚开始编程Objective-C,并在Java的背景下,想知道人们编写Objective-C程序如何处理私有方法。 我理解可能有几个约定和习惯,并认为这个问题作为人们使用处理Objective-C中的私有方法的最佳技术的聚合。 请在发布时附上您的方法的参数。为什么是好?它有哪些缺点(你知道)和如何处理他们? 至于我的发现为止。 可以使用categories [例如MyClass(Private 我刚刚开始编程Objective-C,并在Java的背景下,想知道人们编写Objective-C程序如何处理私有方法。

我理解可能有几个约定和习惯,并认为这个问题作为人们使用处理Objective-C中的私有方法的最佳技术的聚合。

请在发布时附上您的方法的参数。为什么是好?它有哪些缺点(你知道)和如何处理他们?

至于我的发现为止。

可以使用categories [例如MyClass(Private)]在MyClass.m文件中定义,以对私有方法进行分组。

这种方法有2个问题:

> Xcode(和compiler?)不检查是否在相应的@implementation块中的private类别中定义了所有方法
>你必须把@interface声明你的私人类别在MyClass.m文件的开头,否则Xcode抱怨一个消息像“self可能不回应消息”privateFoo“。

第一个问题可以与empty category [例如我的课 ()]。
第二个打扰了我很多。我想看到在文件末尾附近实现(和定义)的私有方法;我不知道这是否可能。

解决方法 有没有像其他人已经说过的,像Objective-C中的私有方法。但是,从Objective-C 2.0(意味着Mac OS X Leopard,iPhone OS 2.0及更高版本)开始,您可以创建一个具有空名称的类别(即@interface MyClass()),称为类扩展。类扩展的独特之处在于方法实现必须与公共方法一样位于同一个@implementation MyClass中。所以我结构我的类像这样:

在.h文件中:

@interface MyClass {    // My Instance Variables}- (voID)myPublicmethod;@end

并在.m文件中:

@interface MyClass()- (voID)myPrivateMethod;@end@implementation MyClass- (voID)myPublicmethod {    // Implementation goes here}- (voID)myPrivateMethod {    // Implementation goes here}@end

我认为这种方法的最大优点是,它允许您按功能分组方法实现,而不是(有时任意)公共/私人区别。

总结

以上是内存溢出为你收集整理的在Objective-C中为类定义私有方法的最佳方法全部内容,希望文章能够帮你解决在Objective-C中为类定义私有方法的最佳方法所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存