gpt4 book ai didi

ios - objective-c 中的箭头运算符

转载 作者:技术小花猫 更新时间:2023-10-29 10:15:36 28 4
gpt4 key购买 nike

我有一个问题,这是代码:

@interface MyFoo : NSObject {
NSString *nameStr;
}
@end
@implementation MyFoo
- (id)init {
self = [super init];
if (self) {
self->nameStr = [@"some value of the string that is set right into the private ivar" copy];
}
return self;
}
@end

问题是:忽略所有 C++ 规则,忽略内存转储漏洞,为什么我不应该使用这样的箭头运算符语法?Apple 文档中的某个地方是否有一条规则表明它是不正确的,因为在未来的类中,类的表示可能不同于运行时等中指向结构的指针?

提前致谢!

最佳答案

self->someIvar 的使用与someIvar 相同。这没有错,但也没有必要。

我唯一一次使用箭头表示法是在 copyWithZone: 的实现中,所以我可以复制每个没有属性的 ivars。

SomeClass *someCopy = ...
someCopy->ivar1 = ivar1; // = self->ivar1
someCopy->ivar2 = ivar2; // = self->ivar2

你在哪里看到任何说你不应该使用这种箭头运算符语法的东西?

关于ios - objective-c 中的箭头运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919793/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com