ObjectiveC,创建类数组

发布于 2024-10-03 06:25:11 字数 519 浏览 7 评论 0原文

我有一个包含值的类:

@interface Params : NSObject {
  [...]
  NSString *fc;
  NSString *sp;
  NSString *x;
  NSString *y;
  [...]
  @property (nonatomic, assign) NSString *fc;
  @property (nonatomic, assign) NSString *sp;
  @property (nonatomic, assign) NSString *x;
  @property (nonatomic, assign) NSString *y;
  [...]
@end

可以在 Objective-c 中创建一个类数组吗?像c#/java?

MyClass[] a = new MyClass[20] ???
a[0].fc = "asd" ?

或同等的东西?

谢谢, 阿尔贝托

I have a class that contains values:

@interface Params : NSObject {
  [...]
  NSString *fc;
  NSString *sp;
  NSString *x;
  NSString *y;
  [...]
  @property (nonatomic, assign) NSString *fc;
  @property (nonatomic, assign) NSString *sp;
  @property (nonatomic, assign) NSString *x;
  @property (nonatomic, assign) NSString *y;
  [...]
@end

it's possible to create in objective-c an array of classes? like c# / java?

MyClass[] a = new MyClass[20] ???
a[0].fc = "asd" ?

or something equivalent?

thanks,
alberto

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

假面具 2024-10-10 06:25:11

虽然执行此操作的标准方法是使用 NSArray,但您也可以使用 C 样式数组来执行此操作:

int numObjects = 42;
Params ** params = malloc(sizeof(Param*) * numObjects);
for (int i = 0; i < numObjects; ++i) {
  params[i] = [[[Params alloc] init] autorelease];
}

free(params);

但是,使用 NSArray 会简单得多。 :)

While the standard way to do this would be with an NSArray, you can do this with a C-style array as well:

int numObjects = 42;
Params ** params = malloc(sizeof(Param*) * numObjects);
for (int i = 0; i < numObjects; ++i) {
  params[i] = [[[Params alloc] init] autorelease];
}

free(params);

However, using an NSArray would be much simpler. :)

2024-10-10 06:25:11

您可以使用标准的 NSArray 来执行此操作,在我的示例中我使用了视图,但您可以使用指向任何对象的指针。

    UIView * object = [[UIView alloc] init];
 UIView * object2 = [[UIView alloc] init];
 UIView * object3 = [[UIView alloc] init];

 NSArray * array = [[NSArray alloc] initWithObjects:object,object2,object3,nil];

[object release];[object2 release];[object3 release];//edit

 UIView * test = [array objectAtIndex:0];
 test.tag = 1337;

You would use a standard NSArray to do this, in my example I have used views, but you can use pointers to any object.

    UIView * object = [[UIView alloc] init];
 UIView * object2 = [[UIView alloc] init];
 UIView * object3 = [[UIView alloc] init];

 NSArray * array = [[NSArray alloc] initWithObjects:object,object2,object3,nil];

[object release];[object2 release];[object3 release];//edit

 UIView * test = [array objectAtIndex:0];
 test.tag = 1337;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文