为什么我必须在Objective-C中指定(NSMutableString *)

时间:2015-04-12 14:23:23

标签: objective-c pointers

NSMutableString *stringA = [[NSMutableString alloc] init];
NSMutableString *stringB = [[NSMutableString alloc] init];
stringB = (NSMutableString *)stringA;

从现在开始,stringB指向与字符串A相同的地址。我不明白为什么我要写这个:

stringB = (NSMutableString *)stringA;

而不是:

stringB = stringA

因为它们都已经被声明为NSMutableString指针。

1 个答案:

答案 0 :(得分:1)

你不明白,因为这是无稽之谈。

您创建了一个可变字符串并在stringA中存储了一个指针。

您创建了另一个可变字符串并在stringB中存储了一个指针。

然后将第一个指针存储在第二个变量中,这将删除第二个可变字符串。第二个alloc / init只是毫无意义,只不过是浪费代码和时间。演员是绝对没有必要的。