zoukankan      html  css  js  c++  java
  • use of undeclared identifier *** , did you mean ***. in xcode

    A property is not the same thing os a instance variable, you should read a little bit of them, there's plenty of sources in the internet.

    Summarizing, a property is the combination of the instance variable (by default, automaticated declaraded with a underscore), and it's get and set methods.

    To access the property inside your class, you should call for self.propertyName, in your case it would be self.myTextfield. This will access the gererated get method of the property. You can always, of course if you are inside the class, skip the get method and access the variable directly. In this case, it would be _myTextfield.

    If you are not confortable with this automaticated instance variable generated, you can always declare your own and bind it with the property with the @synthesize command. Like this:

    @synthesize myTextfieldProperty = myTextfieldVariable;
    

    Here's more information about the synthesize. As I said before, this command binds one iVar to a property. So, when you execute the line above, inside your class, you can either reference to the iVar directly, calling myTextfieldVariable, or by the property, self.myTextfieldProperty (there are a few differences actually between them, but I'm not entering in details).

    If you don't write the synthesize, what xcode does for you, automatically, is this:

    @synthesize myTextfield = _myTextfield;
    

    So, in your case, as you does not synthesize your property, xcode automatically created the iVar with the underscore in the beginning. It's just a pattern that xcode follows.

    The line @synthesize myTextfield;, without binding an iVar directly, is simple the same as

    @synthesize myTextfield = myTextfield;
    

    i.e. you are creating an iVar with the same name of your property. And why these two lines are actyally the same thing? I don't know, again, it's just a pattern that xcode follows.

  • 相关阅读:
    ansible 2.2的源码编译安装
    存储过程-快速上手
    从库重启后报1062错误
    删除一张600万记录表的一个索引需要多长时间?
    mysql主从复制Error1205
    浅谈管理(三)如何管理资料库
    kettle之时间字段默认值为空或’0000-00-00’问题
    浅谈管理(二)项目管理
    乌龙之Ignoring query to other database问题
    一、安装
  • 原文地址:https://www.cnblogs.com/welhzh/p/4322835.html
Copyright © 2011-2022 走看看