are*_*s05 6 variables objective-c ios6
我是Objective C和iOS的新手,目前正在尝试使用iOS 6 SDK学习应用程序开发.我真的无法理解的一个概念是在.m文件中访问时"_variable"和"self.variable"之间的区别.它们是一样的吗?还是不同?
以下是一个简单的示例
MyClass.h
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
@property (strong, nonatomic) NSString *myName;
@end
Run Code Online (Sandbox Code Playgroud)
MyClass.m
#import "MyClass.h"
@interface MyClass ()
@property (nonatomic, strong) NSString *anotherName;
@end
@implementation MyClass
- (void) myFunction {
_myName = @"Ares";
self.myName = @"Ares";
_anotherName = @"Michael";
self.anotherName = @"Michael";
}
@end
Run Code Online (Sandbox Code Playgroud)
那么上面的实现设置变量有什么不同吗?变量"myName"是Public,而"anotherName"是Private.
非常感谢任何投入.谢谢!
Jes*_*ack 14
不同之处在于:
变量名称_是实例变量.
self.variable 在你的对象上调用getter方法.
在您的示例中,实例变量是自动生成的,您也不需要合成属性.
如果您不使用ARC,您的示例中真正重要的区别就会发挥作用
self.variable如果您使用retain或strong
_variable根本不解决内存管理问题,将为您保留一个对象
| 归档时间: |
|
| 查看次数: |
7176 次 |
| 最近记录: |