新版本的xcode在你定义属性时会自动帮你创建一个_开头的同名内部变量(比如你定义一个name属性,那么默认会有一个_name的内部变量),所以@synthesize默认可以不用写,除非你的属性和你的内部变量不同名才要用到

解决方案 »

  1.   

    但是并没有定义内部变量。运行出现错误,我才发现没有生成@synthesize语句的
      

  2.   

    那我就不知道了,我没有用过sb和xib来画界面,都是用代码写的
      

  3.   

    ios5之前的版本才需要手动使用@synthesize指令来生成属性的getter,setter方法。
      

  4.   

    没有自动生成@synthesize指令是因为这已经是编译器的默认设置了。
      

  5.   

    从ios 5.0 之后@synthesize 的编译器指令已经不需要了。编译器不需要再使用@synthesize指令就可以为属性生成getter,setter 方法了。估计你现在学习的资料有点老了,现在都到ios8.1 了
      

  6.   

    那是用什么方法生成的getter和setter方法,如果不加@synthesize编译器提示出错呀!
      

  7.   

    那是用什么方法来解决getter和setter函数定义的呢
      

  8.   

    那是用什么方法来解决getter和setter函数定义的呢
    那肯定是代码的问题,把报错和代码贴上来
      

  9.   

    那是用什么方法来解决getter和setter函数定义的呢
    那肯定是代码的问题,把报错和代码贴上来
    一个button一个label,button的操作是buttonPressed,label的输出口是status text,没有定义@synthesize的时这个status text, buttonPressed的代码如下-(IBAction)buttonPressed:(UIButton *)sender
    {
    NSString *title=[sender titleForState:UIControlStateNormal];
    statusText.text=[NSString stringWithFormat:@"%@ button pressed",title];
    }
    因为源文件给删了,然后就打了个操作
      

  10.   

    如果你的属性是这样定义的:@property (nonatomic, weak) IBOutlet UILabel *statusText;编译器会自动生成:@synthesize statusText = _statusText;所以你访问的时候有两种方式:
    一是self.statusText,这是调用了getStatusText这个方法取得引用
    二是_statusText.
      

  11.   

    定义的时候属性是强变量,其他没有区别,但是编译器没有自动生成后面那句
    我们所说的是编译器生成的,也就是编译时才生成,不是IDE(Xcode)生成的,你怎么看得到?这成了编译器默认的一部分
      

  12.   

    那是用什么方法生成的getter和setter方法,如果不加@synthesize编译器提示出错呀!
    报什么错,使用什么版本的sdk编译的你的应用 ?
      

  13.   

    那是用什么方法生成的getter和setter方法,如果不加@synthesize编译器提示出错呀!
    报什么错,使用什么版本的sdk编译的你的应用 ?
    /Users/pro/Documents/own_project/mghhz02/mghhz02/ViewController.m:32:5: Use of undeclared identifier 'statusText'; did you mean '_statusText'?
    报的这个错
      

  14.   

    那是用什么方法生成的getter和setter方法,如果不加@synthesize编译器提示出错呀!
    报什么错,使用什么版本的sdk编译的你的应用 ?
    /Users/pro/Documents/own_project/mghhz02/mghhz02/ViewController.m:32:5: Use of undeclared identifier 'statusText'; did you mean '_statusText'?
    报的这个错
    尝试使用self.statusText 或 _statusText 访问。你既然使用了属性,那么建议你使用self.statusText来访问或赋值。
      

  15.   

    谢谢各位,问题解决了,用得self.statusText调用就可以了