oOOMIAO 2012-12-24 08:33 采纳率: 10%
浏览 2110
已采纳

@class @synthesize用法

问题描述:

为了coredata创建类:

LoginPass.h

然后first类

FirstClass.h

然后在secondclass中使用这些类,用@class声明:

SecondClass.h
...
@class FirstClass;
@class LoginPass;
...
    @interface SecondClass : UIViewController
  {
   ......
  }
@property (strong, nonatomic) FirstClass *fromFirstClass;
@property (strong, nonatomic) LoginPass *myEntity;
...
@end

在.m文件中

#import "SecondClass.h"
#import "FirstClass.h"
#import "LoginPass.h"
@implementation SecondClass
...
@synthesize fromFirstClass = _fromFirstClass;
@synthesize myEntity = _myEntity;
...

我不明白为什么要写这行代码:@synthesize myEntity = _myEntity;但是换成这行代码就不行了:@synthesize myEntity;

问题是:为什么可以用self.fromFirstClass,但是不能用self.myEntity

如果用 self.myEntity的话系统会报错。为什么?

  • 写回答

1条回答

  • redCoral_ 2012-12-24 09:24
    关注
    @synthesize fromFirstClass = _fromFirstClass;
    @synthesize myEntity = _myEntity;
    

    这两行代码都正确,不过现在@synthesize 已经包含在编译器里所以不用@了

    在使用self.prop用来访问属性

    在用_prop时是直接调用属性

    在使用self.prop时, 调用方法取决于lhs 或者hs of =(assignment) :

    -(NSString *)prop; //在使用myName=self.prop调用;
    

    and/or

    -(void)setProp; //在使用self.prop=@"master"调用;
    

    同时 如果使用 self._myEntity ,系统会需找名字中带_的方法, 导致错误.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)