我正在用 BigNerdRanch 的书“Aaron Hillegass 的 Objective-C 编程”来研究 Objc,这件事一直让我感到困惑。
我知道编译器需要知道我在说什么类型的变量,所以我必须在赋值之前声明 var 类型。
int myNum = 10;
美好的。但是对于ObjC类,如果我必须在=之后声明指针类型,当我分配和初始化它时,声明指针类型的原因是什么?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
显然 *dateFormatter 对象是 NSDateFormatter 的一个实例,我在分配中写了它。为什么我也必须在开头声明它?因为如果我尝试做类似的事情
NSString *timeZone = [NSTimeZone systemTimeZone];
Xcode 清楚地警告我使用“NSTimeZone *”类型的表达式初始化“NSString *”的不兼容指针类型。
我觉得我错过了什么。抱歉,如果这是一个愚蠢的问题,请尝试学习。