【问题标题】:Questions about instance variables and declaring their properties关于实例变量和声明其属性的问题
【发布时间】:2012-02-21 23:45:29
【问题描述】:

如果我在标题中的括号中声明实例变量和对象,并在它们前面加上“IBOutlet”,我是否必须设置对象属性?

这是否也意味着它们是私有的?私有化对他们意味着什么???

【问题讨论】:

    标签: iphone xcode properties header


    【解决方案1】:

    如果您使用@property@synthesize,则不必声明变量。 .h 文件是一个类的 api,因此在其中声明任何内容都具有公开而不是私有的意图。

    要声明 IBOutlet 私有,您需要创建一个类别,

    @interface YourViewController ()
    
    @property (nonatomic, retain) IBOutlet UILabel *label;
    
    @end
    

    以上代码将在 .m 文件中。

    希望这会有所帮助

    【讨论】:

      【解决方案2】:

      不,不需要为 IBOutlets 设置属性,只需声明它们就足够了 例如:

       IBOutlet UIbutton *btn;
      

      如果您希望变量是私有的,那么您必须以这种形式声明它

      @interface myclass:NSObject
      {
         @private
         int var1;
      }
      

      类中声明为私有的实例变量只能由该类的实例访问。

      【讨论】:

        【解决方案3】:

        您只需将对象的变量声明为 IBOutlets(假设您使用 Interface Builder 连接它们)。除非您有理由将它们设为属性(即您希望其他对象可以访问该变量),否则它们不必是属性。外部对象无法访问私有属性。

        【讨论】:

          猜你喜欢
          • 2013-09-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-26
          • 2012-03-10
          • 2011-03-05
          • 1970-01-01
          相关资源
          最近更新 更多