在iOS开发中,`viewDidLoad` 方法是用于初始化界面的常用方法。在这个方法中,我们创建了一个 `NSString` 对象,并通过逗号分隔符将其拆分为一个 `NSArray` 数组。然后,我们从数组中获取第三个元素,并使用 `NSLog` 打印出来。最后,我们需要释放这个字符串对象所占用的内存。
以下是对给定代码片段的重构:
```objective-c
- (void)viewDidLoad {
// 注意:由于 componentsSeparatedByString: 返回的是一个 autorelease 对象,所以不需要显式地释放它
NSString *a = [[NSString alloc] initWithString:@"冬瓜,西瓜,火龙果,大头,小狗"];
NSArray *b = [a componentsSeparatedByString:@","];
NSString *a3 = [b objectAtIndex:2];
NSLog(@"
b的第三个东东是: %@", a3);
}
```
在这个重构后的代码中,我们移除了不必要的 `[a release]` 语句。因为 `componentsSeparatedByString:` 返回的对象是一个自动释放的对象(autoreleased object),当其生命周期结束时,它会自动释放内存。因此,不需要显式地释放这个对象。这可以避免程序出现 CRASH(内存为 -1)的情况。