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.

  • 相关阅读:
    windows下查看端口进程占用情况
    分布式文件管理系统MooseFS在centOS 7中的安装
    开发中的技术选型调研总结
    windows和linux无法访问VMware中linux的tomcat主页问题
    如何使windows系统ping通VMware下面的linux系统
    VMware中linux安装jdk
    mysql数据库之存储过程入门
    Hibernate批处理操作优化 (批量插入、更新与删除)
    JDBC: 批量处理提高SQL处理速度
    小程序 长按复制文本
  • 原文地址:https://www.cnblogs.com/welhzh/p/4322835.html
Copyright © 2011-2022 走看看