在.h文件中:
@interface MyClass:NSObject
{
MyObjecct *_myObject;
}
@property(nonamtic, retain) MyObjecct *myObject;
@end
在.m文件中
@implementation MyClass
@synthesize myObject=_myObject;
- (void)dealloc
{
[_myObject release];
[super dealloc];
}
@end
通过最近google了一些文章,如果大家观后有自己看法希望能留言
_myObject是实例变量,相当于C++中self->myObject
self.myObject相当于[self myObject];是一个消息,也有说是属性
http://stackoverflow.com/questions/5466496/why-rename-synthesized-properties-in-ios-with-leading-underscores
myObject和_myObject是用来区别实例变量消息。一般来说,应该使用setter和getter的属性,而不是直接访问实例变量。
当你写一个setter方法,该方法不能自身使用setter,否则你会产生无限递归,并且发生崩溃。setter调用自身,再次调用自身,直到堆栈溢出。
http://www.iphonedevsdk.com/forum/iphone-sdk-development/98273-feeling-confused-about-_property-and-property.html
写成这样:
@interface MyClass
@property (nonatomic, retain) NSString* myProperty;
- (NSString*)someOtherMethod;
@end
@implementation MyClass
@synthesize myProperty = _myProperty; // setter and ivar are created automatically
- (NSString*)myProperty {
return [_myProperty stringByAppendingString:@" Tricky."];
}
- (NSString*)someOtherMethod {
return [self myProperty];
}
http://stackoverflow.com/questions/9541828/property-and-setters-and-getters
http://stackoverflow.com/questions/4172810/what-is-the-difference-between-ivars-and-properties-in-objective-c
分享到:
相关推荐
#### 六、小结 通过本文的学习,您应该已经掌握了如何在Java中使用`.properties`文件来管理配置信息。这对于构建可扩展和易于维护的应用程序是非常重要的。无论是数据库连接字符串、API密钥还是其他的环境变量,都...
### Hibernate学习笔记小结 #### 一、简介与配置 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...
【Spring 框架学习小结】 Spring 是一个流行的 Java 应用开发框架,它以其控制反转(Inversion of Control, IOC)和面向切面编程(Aspect-Oriented Programming, AOP)为核心特性,被誉为轻量级框架。下面将详细...
例如,可以使用`obj.property`来获取或设置对象的属性,`delete obj.property`来删除属性,以及`for...in`循环遍历对象的属性。 **Array类型** Array类型提供了丰富的操作方法,如排序、截取、添加和删除元素等。在...
### Hibernate小结 #### 一、概述 在本篇文章中,我们将对Hibernate框架进行一个较为全面的小结。主要内容包括:Hibernate映射中的Lazy加载策略、Hibernate查询语言(HQL)的使用方法,以及一些基本配置与操作技巧...
"WPF控件样式小结"这个主题涵盖了如何利用这些特性来定制控件的外观和行为。让我们深入探讨一下WPF中的样式(Style)和控制模板(ControlTemplate)。 **样式(Style)** 样式在WPF中用于定义控件的一系列属性值,...
在构建企业级应用时,常常会采用Struts2、Hibernate和Spring这三种技术进行整合,形成SSH框架。这里我们主要讨论SSH项目中的Hibernate部分,它是一个强大的对象关系映射(ORM)框架,使得开发者可以方便地将数据库...
Matlab 二维曲线绘制小结 Matlab 是一种功能强大的编程语言,广泛应用于科学计算、数据分析和可视化领域。绘制二维曲线是 Matlab 中最基本也是最常用的功能之一。本文将详细介绍 Matlab 中绘制二维曲线的方法和技巧...
### ibatis 学习小结笔记 #### 一、ibatis 概述 ibatis 是一个基于 Java 的持久层框架,它提供了一种简便的方式来处理关系型数据库与 Java 对象之间的映射(O/R Mapping)。ibatis 在设计上强调的是 SQL 语句的...
文章目录面向对象高级编程使用__slots__使用__slots__使用@property练习多重继承Mixln小结定制类__str____iter____getitem____getattr____call__小结使用枚举类exercise小结使用元类type()metaclass 面向对象高级...
在Android 3.0(API Level 11)及更高版本中,引入了Property Animation系统,包括`ObjectAnimator`和`ValueAnimator`,它们提供了更强大的动画控制能力。尽管如此,Tween动画仍然在许多场景下被广泛使用,特别是...
2. `getProperty(String key)` 和 `setProperty(String key, String value)`:获取和设置特定键的值。当需要根据键查找对应的值时,这两个方法非常有用。 3. `loadFromXML(InputStream)` 和 `storeToXML...
- `Property Let` 和 `Property Set` 不再使用,现在使用 `Property` 关键字。 - `Currency` 数据类型不再支持,取而代之的是 `Decimal`。 - `Variant` 类型被 `Object` 替代,`Object` 兼具VB6的 `Object` 和 `...
以下是对CSS3中一些关键知识点的详细解释: 1. **CSS3 Transform**: - `transform`属性允许你对元素进行二维或三维的转换,如移动、旋转、缩放和倾斜。例如,`transform: translate(100px) rotate(40deg) scale(2...
#### 小结 以上三种配置方式各有优缺点,可以根据具体项目的实际需求选择最适合的方式。通过将配置文件和日志框架(如log4net)结合使用,可以进一步提升系统的可维护性和扩展性。希望这些配置示例能够帮助到正在...
JavaScript中的继承机制是其面向对象编程的核心特性,它允许创建基于现有对象的新对象,从而实现代码的重用和扩展。本文将深入探讨JavaScript继承的六大模式:原型链、借用构造函数、组合继承、原型式继承、寄生式...
5. 小结 本文档主要介绍了 Yarn 配置相关的知识点,包括 HDFS Federation 和架构的配置。我们可以通过配置 hdfs-site.xml 文件来定义 Namenode 和 Datanode 的配置,并且可以通过使用 pssh 和 pscp 工具来便捷地...
Spring 3.2 是一个重要的版本,它在Spring框架的基础上提供了更多增强的功能和优化,尤其在依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IoC)方面。Spring是一个开源的Java框架,它旨在...
5. 引用对象属性:通过`.`操作符访问对象的属性,如`${bean.property}`。 四、实际应用 1. 视图渲染:在Web开发中,FreeMarker结合Servlet容器,根据后台传入的数据模型渲染出HTML页面。 2. 邮件模板:用于生成...