[英]Pointers on Objective-c
根据我的理解(如果我错了,请纠正我):
int x, count = 10;
int *hello;
hello = &count;
x = *hello;
这里变量x和count声明为整数类型。 此外,变量计数的值为10。
hello是一个指向整数类型的指针。 然后为hello分配计数地址。 为了访问count的值,你好前面必须有一个星号,即* hello。
因此,x被赋予计数中的任何值,在本例中为10。
然而...
Fraction *myFraction = [[Fraction alloc] init];
[myFraction someMethod];
在这里,如果我理解正确,myFraction是一个指向Fraction类实例的指针。
myFraction指向(或者更确定地指定了地址)已分配内存并初始化的对象。
当然,为了访问myFraction指向的对象,我应该写:
[*myFraction someMethod];
鉴于x访问count的值的方式,当然为了访问该对象,应该写这个而不是:
[myFraction someMethod];
另外,如果我有
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *str = @"Programming can be a headache";
NSLog (@"%@\n", str);
为什么str被视为上面的一个对象? 或者是str一个对象,在这种情况下,为什么我要让它指向一个NSString类的实例? 当然,我应该能够只为str分配一个对象?
目标c中对象的所有使用都是通过对象引用完成的,例如指针。
str
是NSString
类型的对象引用(作为myFraction
)和@"Programming can be a headache"
也是NSString
类型的对象引用,因此您可以将它分配给str
。 Binyamin的补充
描述
返回表示接收类内容的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.