关于Objective-C中的指针

vbo*_*atz 5 pointers objective-c nsrange

我偶然发现了以下情况,似乎无法解决为什么这样做.请问你能解释为什么我之前不需要使用指针range吗?

NSString *d = @"The quick brown fox";
NSRange range = [d rangeOfString:@"brown"];
Run Code Online (Sandbox Code Playgroud)

Jos*_*erg 9

NSString是一种对象类型.所有对象类型都是指针,无法在堆栈上创建.NSRange是一个C结构.结构可以在堆栈上创建,因此不一定都是指针.

没有一个很好的指南知道哪些是对象,哪些是结构.您只需要在前进时检查每种类型.