【问题标题】:Asterisk in Objective-C [duplicate]Objective-C中的星号[重复]
【发布时间】:2013-11-07 16:03:38
【问题描述】:

我真的需要有人帮助我。 我正在尝试学习对象 C。但我不了解星号运动。 我自己解释一下:

NSDate *date = [NSDate date]

这里我们要求 date 方法创建一个 NSdate 实例并存储在 date 中。对吗?

如果我在@interface 中并且我这样做了:

@interface Gretter : NSObject
{
 NSString  *greetings
}

这里我们声明了属于 NSObject 超类的 Gretter 子类,并将方法 greetings 添加到子类 greeting 对吗?

我真的不明白的是:

NSString* greeting = @"hello"

为什么这里的 NSString* 附加了星号??

这是 3 个单独的示例,不属于同一程序。 我只是想了解为什么星号*改变位置

非常感谢

CL

【问题讨论】:

  • 它是 Objective-C,而不是 Object C。

标签: objective-c


【解决方案1】:

让我依次回答你的每个问题:

这里我们要求 date 方法创建一个 NSdate 实例并存储在 date 中。对吗?

是的,没错。这种说法有点奇怪,但你的想法是对的。

这里我们声明 Gretter 子类属于 NSObject 超类,我们在子类 greeting 中添加方法 greeting 对吗?

您正确地认为GretterNSObject 的子类。但是,您添加的是一个名为 greetings 的实例变量,而不是一个方法。

为什么这里的 NSString* 附加了星号??

星号的位置并不重要。在每种情况下,您都在创建/定义/初始化指向对象的指针。 NSString* fooNSString *foo 相同,与NSString * foo 相同。这只是风格问题。

【讨论】:

    【解决方案2】:

    这个:

    NSString* greeting = @"hello";
    

    还有这个:

    NSString *greeting = @"hello";
    

    完全一样,都是定义一个指向字符串对象的指针。

    【讨论】:

    • 对编译器来说,它们并不相似,它们完全一样。这只是空白区域的差异。不要忘记NSString * greeting = @"hello";
    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多