gpt4 book ai didi

objective-c - 如何在 iOS >= 4.0 的 Objective-C 中创建私有(private)方法和 ivars?

转载 作者:行者123 更新时间:2023-12-01 17:21:36 26 4
gpt4 key购买 nike

我听说最近可以通过在 .m 文件中再次声明接口(interface)来创建私有(private)方法。但是语法到底是什么样的呢?

如果重要:在 ARC 下。

  • 它必须出现在@implementation 之前吗?
  • 它看起来与 .h 文件中的 @interface 声明完全一样吗?
  • 它必须复制有关继承和协议(protocol)合规性的信息吗?
  • 从什么时候开始可以使用?支持它的最古老的 iOS 和 Objc-C 运行时是什么?
  • 最佳答案

    头文件:

    //YourClass.h:
    @interface YourClass {
    @private //optional
    //private scope ivars
    @protected //default, optional
    //protected scope ivars
    @public //optional
    //public scope ivars
    @package //optional
    //package scope ivars
    }

    //public methods

    @end

    实现文件:
    //YourClass.m:
    #import "YourClass.h"

    //you could also import this class extension (that's what it's called) from an
    //external header file which can be helpful for making pseudo-protected methods/ivars
    //Don't forget the additional import statement then, though.
    @interface YourClass () <PrivateProtocol> //protocol tag optional, of cource

    @private //optional
    //private scope hidden ivars
    @protected //default, optional
    //protected scope hidden ivars
    @public //optional
    //public scope hidden ivars
    @package //optional
    //package scope hidden ivars

    @end

    @implementation YourClass

    //your class' method implementations

    @end

    Docs在 ivar 范围内。

    有关以上代码片段中的新内容及其全部内容(兼容性等)的更多信息,请参阅 WWDC 2011 Session #322

    Xcode 4.2 带来了隐藏的私有(private) ivars。
    类扩展已经存在了很长一段时间。

    关于objective-c - 如何在 iOS >= 4.0 的 Objective-C 中创建私有(private)方法和 ivars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9121913/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com