Objective c 目标C…定义结构?
我是一名新编程人员,一般来说是Objective-C。我是否在接口中声明结构并在实现中使用void方法定义它Objective c 目标C…定义结构?,objective-c,Objective C,我是一名新编程人员,一般来说是Objective-C。我是否在接口中声明结构并在实现中使用void方法定义它 @interface Elements : NSObject { struct elementZ{ NSString *name; float molarmass; }elements[81]; 现在我已经声明了。我在哪里初始化元素[81]数组?您的代码对我来说就是这样。然后,您可以访问实现中的数据,如下所示: typedef struct element{
@interface Elements : NSObject {
struct elementZ{
NSString *name;
float molarmass;
}elements[81];
现在我已经声明了。我在哪里初始化元素[81]数组?您的代码对我来说就是这样。然后,您可以访问实现中的数据,如下所示:
typedef struct element{
NSString *name;
float molarmass;
}elementZ;
elementZ[81] array;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
elements[2].name = @"hello";
NSLog(elements[2].name);
}
这将向控制台打印“hello”。我是否在接口中声明结构并在实现中使用void方法定义它? 是的,这就是你所想的,因为目标C是C的超集。有一个方法,它不带参数,返回void,并通过
元素初始化struct elementz
的成员变量[81]代码>。可能通过运行从0到80的循环。例如-
#import <Foundation/NSObject.h>
@interface Fraction: NSObject {
struct myStructure {
int numerator, denominatior;
}objects[10];
}
-(void) print;
-(void) initialize;
@end
@implementation Fraction
-(void) initialize
{
for( int i=0; i<10; ++i )
{
objects[i].numerator = (i+1);
objects[i].denominatior = (i+2);
}
}
-(void) print
{
for( int i=0; i<10; ++i )
{
printf("%d\t%d\n", objects[i].numerator, objects[i].denominatior);
}
}
@end
int main(int argc, char *argv[])
{
Fraction *obj = [[Fraction alloc] init];
[ obj initialize ];
[ obj print ];
[ obj release ];
return 0;
}
#导入
@接口分数:NSObject{
结构myStructure{
整数分子,分母;
}对象[10];
}
-(作废)打印;
-(作废)初始化;
@结束
@实现分数
-(无效)初始化
{
对于(int i=0;i在Elements类的实现块中添加一个init方法:
- (id)init {
if (self = [super init]) {
for (int i=0; i<81; i++) {
elements[i].name = "foo";
}
}
return self;
}
我想你把结构和数组混淆了。我正在声明elementZ Structure的数组是的,你已经声明了。你定义它是什么意思?初始化?然后你可以添加一个-(id)init
方法到您的实现中。@Kai-OP可能是要初始化elementZ
成员。@VenDiaS:我已经编辑了您的问题,将define更改为initialise。
Elements *e = [[Elements alloc] init];