如何创建结构的 class 扩展?

How to create a class extension of a struct?

我正在处理很多 GLKmatrix4 元素。这些元素是在 GLKit.

上声明的结构

有一次我想按行-列顺序获取这些元素的字符串表示形式。

如果这些元素是对象,我会创建一个 class 扩展,如下所示:

-(NSString *)getString {

  NSMutableString *string = [NSMutableString string];

  [string appendString:[self formatString:self.m00]];
  [string appendString:[self formatString:self.m01]];
  [string appendString:[self formatString:self.m02]];
  [string appendString:[self formatString:self.m03]];
  [string appendString:[self formatString:self.m10]];
  [string appendString:[self formatString:self.m11]];
  [string appendString:[self formatString:self.m12]];
  [string appendString:[self formatString:self.m13]];
  [string appendString:[self formatString:self.m20]];
  [string appendString:[self formatString:self.m21]];
  [string appendString:[self formatString:self.m22]];
  [string appendString:[self formatString:self.m23]];
  [string appendString:[self formatString:self.m30]];
  [string appendString:[self formatString:self.m31]];
  [string appendString:[self formatString:self.m32]];
  [string appendString:[self formatString:self.m33]];
  [string appendString:@"\n"];

  return self;
}

- (NSString *)formatString:(float)value {
  return [NSString stringWithFormat:@"%.6f ", value];
}

GLKMatrix4 是一个结构。我该怎么做?

没有结构的扩展或类别这样的东西。它们是普通的旧 C 结构。如果你看看 apple 做了什么,通常它使用 C 函数来处理它们的结构。例如,CGPointFromStringCGRectMake。您可以使用相同的方法,也可以将所有这些函数封装在 class 中。