在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)的情况。