gpt4 book ai didi

objective-c - Objective-C 是否禁止使用结构?

转载 作者:太空狗 更新时间:2023-10-30 03:34:13 25 4
gpt4 key购买 nike

我是 Objective C 的新手

我尝试使用一个简单的 struct 并得到了

arc forbids objective-c objects in struct

Looking up ARC ,看起来这是定义 Objective C 语法的规范 - 对吗?

其次,如果不允许使用 struct,我该如何着手?

谢谢!

编辑:一些代码作为示例

@implementation Cities {
// The goal is to have a struct that holds information about a city,
// like when a person started and ended living there.
// I was trying to make this struct an instance variable of the Cities
// class
// XCode doesn't like the below struct definition

struct City
{
NSString *name;
int *_startYear;
int *_endYear;
};
}

最佳答案

arc forbids objective-c objects in struct

结构是一种 C 结构。编译器以非常明确的方式告诉您,您不能在结构中包含 Objective-C 对象,而不是说结构是非法的。

您可以随心所欲地使用常规 C 结构。

您的示例试图将对 Objective-C 对象 NSString 的引用放入与 ARC 不兼容的 struct 中。

结构通常用于简单的数据结构。您可能在 Objective-C 代码中遇到的示例是 CGPointCGRect

CGPoint 看起来像这样

struct CGPoint 
{
CGFloat x;
CGFloat y;
};

我认为,CGFloat 只是一个double,其思想是表示二维空间中的一个点。结构可以包括指向其他​​结构、C 数组和标准 C 数据类型的指针,例如 intcharfloat... 和 Objective -C 类可以包含结构,但反过来不行。

结构也可能变得非常复杂,但这是一个非常广泛的主题,最好使用 Google 进行研究。

关于objective-c - Objective-C 是否禁止使用结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28471855/

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