gpt4 book ai didi

iphone - 如何在不同文件中调用结构

转载 作者:行者123 更新时间:2023-12-03 21:18:37 26 4
gpt4 key购买 nike

我已经在一个文件中定义了一个结构体,现在我想在另一个文件中使用这个结构体。我知道它可以使用“::”来调用C++的结构体,但是对于objective-c如何调用该结构体.

My.h 文件“ManageMarketPacket.h”

 #import <Foundation/Foundation.h>   
typedef struct ORIGINAL_QUOTA_DATA_tag{
short id;
char exch;
}ORIGINAL_QUOTA_DATA;
@interface ManageMarketPacket : NSObject {
}

我的文件“ManageMarketPacket.m”

#import "ManageMarketPacket.h"
@implementation ManageMarketPacket
@end

所以我的 .m 文件没有任何内容,所以我的另一个文件将使用该结构,在我的另一个文件“NetWorkConnect.m”中

#import "ManageMarketPacket.h"
@implementation NetWorkConnect
- (id)init{
if (self==[super init]) {
ORIGINAL_QUOTA_DATA quota;
}
return self;
}
@end

所以我的问题是ORIGINAL_QUOTA_DATA配额;这是不正确的......所以我如何调用NetWorkConnect.m中的结构?

最佳答案

在 NetWorkConnect 的头文件中而不是在 init 方法中声明配额。那么它将是一个可以从任何实例方法访问的实例变量,就像任何其他实例变量一样。

例如如果你输入:

#import "ManageMarketPacket.h"
// ...

@interface ManageMarketPacket : NSObject {
ORIGINAL_QUOTA_DATA quota;
// ...
}

在 NetWorkConnect.h

然后您就可以在 NetWorkConnect.m 中的其他方法(包括 init)中引用它。

- (id)init{
if (self==[super init]) {
quota.id = 1;
quota.exch = 'A'
}
return self;
}

-(void) updateMyQuote:(int)quotaId exch:(char) quotaExch {
quota.id = quotaId;
quota.exch = quotaExch;
}

-(void) doSomethingElseWithQuota {
if (quota.id != someOtherId) {
quota.exch = 'F';
}
}

关于iphone - 如何在不同文件中调用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439845/

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