如何创建结构的类扩展?

时间:2016-03-25 07:55:04

标签: ios glkit

我正在处理很多GLKmatrix4个元素。这些元素是在GLKit上声明的结构。

有一次,我想以行列顺序获取这些元素的字符串表示。

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

-(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是一个结构。我该怎么做?

1 个答案:

答案 0 :(得分:3)

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