zoukankan      html  css  js  c++  java
  • iOS中四种实例变量的范围类型@private@protected@public@package

    Directive

    Meaning

    @private

    The instance variable is accessible only within the class that declares it.

    @protected

    实例变量只能被声明它的类访问

    The instance variable is accessible within the class that declares it and within classes that inherit it. All instance variables without an explicit scope directive have @protected scope.

    实例变量能被声明它的类和子类访问,所有没有显式制定范围的实例变量都是@protected

     

    @public

    The instance variable is accessible everywhere.

    实例变量可以被在任何地方访问。

     

    @package

    Using the modern runtime, an @package instance variable has @public scope inside the executable image that implements the class, but acts like@private outside.使用modern运行时,一个@package实例变量在实现这个类的可执行文件镜像中实际上是@public的,但是在外面就是@private【runtime需要再看一下苹果文档Runtime Programming Guide

    The @package scope for Objective-C instance variables is analogous toprivate_extern for C variables and functions. Any code outside the class implementation’s image that tries to use the instance variable gets a link error.

    Objective-C中的@package与C语言中变量和函数的private_extern类似。任何在实现类的镜像之外的代码想使用这个实例变量都会引发link error

    This scope is most useful for instance variables in framework classes, where @private may be too restrictive but @protected or @public too permissive.

    这个类型最常用于框架类的实例变量,使用@private太限制,使用@protected或者@public又太开放

    转载自:http://blog.sina.com.cn/s/blog_5aeb9f7b0101dsir.html,尊重原创! 

  • 相关阅读:
    强制隐藏android键盘
    百度地图3.7.1和传感器的应用
    百度地图3.7.1获取当前的位置,并自定义自身位置的图标
    百度地图3.7.1的卫星地图,实时交通的改变
    百度地图3.7.1的配置
    RecyclerView的ListView显示效果
    单元测试
    自定义侧滑菜单
    synchronized关键字的用法
    Android 开发中R文件的丢失
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/3154605.html
Copyright © 2011-2022 走看看