`
janedoneway
  • 浏览: 569559 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

@synthesize window=_window之类的写法的理解

 
阅读更多

From:http://blog.csdn.net/ch_soft/article/details/6981584

 

在32位系统中,如果类的 @interface 部分没有进行 ivar 声明,但有 @property 声明,在类的 @implementation 部分有响应的 @synthesize,则会得到类似下面的编译错误:
Synthesized property 'xX' must either be named the same as a compatible ivar or must explicitly name an ivar
在 64-bit时,运行时系统会自动给类添加 ivar,添加的 ivar 以一个下划线"_"做前缀。
上面声明部分的 @synthesize window=_window; 意思是说,window 属性为 _window 实例变量合成访问器方法。

也就是说,window属性生成存取方法是setWindow,这个setWindow方法就是_window变量的存取方法,它操作的就是_window这个变量。

下面是一个常见的例子
写法一:
@interface MyClass:NSObject{  
        MyObjecct *_myObject;
}
@property(nonamtic, retain) MyObjecct *myObject;
@end

@implementatin MyClass
@synthesize myObject=_myObject;

写法二:
@interface MyClass:NSObject{
      
}
@property(nonamtic, retain) MyObjecct *myObject;
@end

@implementatin MyClass
@synthesize myObject=_myObject;

这个类中声明了一个变量_myObject,又声明了一个属性叫myObject,然后用@synthesize生成了属性myObject的存取方法,这个存取方法的名字应该是:setmyObject和getmyObject。@synthesize myObject=_myObject的含义就是属性myObject的存取方法是做用于_myObject这个变量的。这种用法在Apple的Sample Code中很常见,
写法二中的_myObject在声明由系统自动生成
分享到:
评论

相关推荐

    Objective-C中的@property和@synthesize用法详解

    相信每个初学者对@property和@synthesize都感到非常的陌生,在此给大家分享下我的自己的理解,有不当之处,还望多多指教。详细说明文章在下面连接http://blog.csdn.net/comeontom/article/details/7455459

    varidict_handler

    变量处理程序一个ObjC助手来使用varidict处理程序。 一行代码值得一千个单词...@implementation Consumer@synthesize handler = _handler;- ( void ) setHandler : (NDHandler) handler { static Validator validator

    利用iOS绘制图片生成随机验证码示例代码

    先来看看效果图 实现方法 .h文件 @property (nonatomic, retain) NSArray *changeArray; @property (nonatomic, retain)...@synthesize changeArray = _changeArray; @synthesize changeString = _changeString; @sy

    Objective-c解析XML封装

    2 调用解析类,提供对象名。 3 返回NSMutableDictionary或者NSMutableArray,键值封装。 示例见最后的注释。 XML封装类待续。。。 转载请注明来源,谢谢 ====== XmlResolve.h #import ...

    Objective-c对象组装XML

    4 利用解析类解析并展现到UIView 部分代码如下: @implementation XmlPackage @synthesize obj; @synthesize isList; @synthesize xmlString; @synthesize objectName; @synthesize lvUp; @synthesize root; @...

    matlab图片灰度化代码-texturesynth:非参数采样的Efros-Leung纹理合成的Matlab实现

    matlab图片灰色化代码纹理合成器 这是Efros-Leung算法的Matlab实现,...window_size ) 输入项 input_image :包含要合成的纹理样本的图像 output_rows :合成图像中所需的行数 output_cols :合成图像中所需的列数 w

    RWSingleton:在ObjC中快速创建单例类的宏

    RWSingleton 在ObjC中快速创建单例类的宏## Motivation 启发我对其进行了一些更改。 最好使用dispatch_once_t 。 同时,为了避免性能下降,我没有锁定共享实例,而是根据实现将这些任务留给开发人员自己完成。用法...

    alu.zip_Cyclone_altera_de2_logic_logic synthesize

    Code to synthesize Arithmetic Logic Unit

    iOS开发中属性 property 和 synthesize 详解

    针对iOS开发中属性 property 和 synthesize 进行了详细介绍

    Python库 | synthesize-0.0.1-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:synthesize-0.0.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Synthesize & Power Analyze

    Synthesize & Power Analyze

    StoryboardTest

    用Xcode4.5编写,突出新的性能。如:@synthesize by default(属性自动绑定)等。

    3D-Synthesize3DviaDepthOrSil.zip

    3D-Synthesize3DviaDepthOrSil.zip,[CVPR 2017]通过建模多视图深度图或轮廓生成和重建三维形状,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他...

    Android代码-Synthesize

    Synthesize Synthesize is an android library which can create layout images in background threads, services, etc without inflating them in activity or fragments. Synthesize Documentation

    irrelon-synthesize:一个用于 JavaScript 模块的简单 getter setter 合成器

    自动创建简单的方法来获取和设置 JavaScript 模块的属性,类似于 iOS Objective-C 中的 @synthesize 指令。 用法 在这个例子中,我们在 MyClass 原型上创建了一个名为 name() 的 getter/setter 方法: var MyClass...

    objective-c小技巧

    1. 使用@property和@synthesize声明一个成员变量,给其赋值是时要在前面加上"self.",以便调用成员变量的setmember方法。 直接调用成员变量并且给其赋值:member=[NSString stringWithFormat:@””];将不执行...

    ObjcAssociatedObjectHelpers:使与关联对象的工作变得更加愉快

    此功能为类实例提供了各种字典,可以使用运行时函数objc_setAssociatedObject()和objc_getAssociatedObject()在其中存储任意对象。 该项目旨在以轻巧且经过全面测试的方式使它们的使用更加方便。 在类别中添加...

    传智博客-Objective-C PPT

    本套PPT,拥有以下OC语言的内容: ...二、OC的特有语法(点语法、@property、@synthesize关键字、id、构造方法、分类、description、SEL) 三、内存管理 四、协议(protocol)代码块(block) 五、ARC 等等

    ViewPager 放大缩小左右移动

    实现 图片的放大,缩小,左右屏幕滑动 。 直接贴代码吧。。 public class ViewPager extends ViewGroup { private static final String TAG = "ViewPager"; private static final boolean DEBUG = false;...

    react-native-hybrid-app-examples:在现有iOS应用程序中使用React Native的示例集合

    AppDelegate.m @synthesize bridge;...- ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions{ ... configure the jsCodeLocation here...

Global site tag (gtag.js) - Google Analytics