OC 中self. 与 下划线的区别
时间: 2024-05-27 17:07:53 浏览: 18
在 Objective-C 中,`self` 和下划线 `_` 都是关键字,但它们的含义不同。
- `self` 表示当前对象本身,可以用来访问当前对象的属性和方法。
- 下划线 `_` 表示实例变量(成员变量),用来表示当前对象中的某个数据成员。
具体来说,`self` 用于方法中,表示当前正在执行方法的对象,可以通过 `self` 来访问对象的属性和方法。而下划线 `_` 用于类中,表示实例变量,可以用来存储和访问对象的数据成员,一般在类的声明中定义实例变量,在方法中使用下划线 `_` 来访问实例变量。
需要注意的是,虽然可以直接使用下划线 `_` 来访问实例变量,但若直接访问实例变量会绕过属性的 getter 和 setter 方法,不会触发属性的 KVO 机制,所以在一些情况下,需要使用属性来访问实例变量。
相关问题
iOS OC 设置self.tabBar圆角
要设置`self.tabBar`的圆角,你可以按照以下步骤进行操作:
1. 在你的视图控制器类中,找到`viewDidLoad`方法或者其他适合的位置。
2. 使用`self.tabBar.layer.cornerRadius`属性来设置`self.tabBar`的圆角半径。例如,你可以将其设置为10来创建一个圆角为10的效果。
3. 为了确保圆角效果生效,还需要将`self.tabBar.layer.masksToBounds`属性设置为`true`,以剪切超出圆角范围的内容。
下面是一个示例代码:
```objective-c
- (void)viewDidLoad {
[super viewDidLoad];
// 设置圆角半径
self.tabBar.layer.cornerRadius = 10;
// 剪切超出圆角范围的内容
self.tabBar.layer.masksToBounds = YES;
}
```
这样,你就可以在iOS的Objective-C中设置`self.tabBar`的圆角了。
oc中属性前加下划线
在Objective-C中,属性前加下划线 `_` 是一种常见的命名约定,用于表示属性的实例变量。实例变量是属性的具体实现方式,它们存储了对象的状态和数据,而属性则提供了一种简洁的方式来访问这些实例变量。
以一个例子来说明,如果我们有一个`Person`类,包含`name`和`age`两个属性:
```
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;
@end
```
在实现类中,我们可以使用下划线 `_` 来表示属性的实例变量:
```
@implementation Person {
NSString *_name;
NSInteger _age;
}
@end
```
在上面的例子中,我们在`@implementation`中定义了`_name`和`_age`两个实例变量,用于存储`name`和`age`两个属性的值。
需要注意的是,使用下划线 `_` 表示属性的实例变量不是必须的,也不是语言本身的要求,而是一种编码风格和约定。此外,属性的实例变量应该在`@implementation`中定义,而不是在`@interface`中,这样可以避免将实例变量暴露给外部访问。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)