Я хочу сделать массив структур, размер которых известен только во время выполнения
NSMutableArray *styleSettingsArray = [NSMutableArray array];
NSString *fontAlignmentAttribute = [element attributeNamed:@"TextAlignment"];
if(fontAlignmentAttribute)
{
CTTextAlignment alignment = [self getTextAlignment:fontAlignmentAttribute];
CTParagraphStyleSetting styleSetting = {kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &alignment};
[styleSettingsArray addObject:[NSValue valueWithBytes:&styleSettings objCType:@encode(CTParagraphStyleSetting)]];
}
// other posible attributes
CTParagraphStyleRef paragraphStyleRef = CTParagraphStyleCreate((__bridge const CTParagraphStyleSetting *)(styleSettingsArray), [styleSettingsArray count]);
[dictionary setObject:(__bridge id)(paragraphStyleRef) forKey:(NSString*)kCTParagraphStyleAttributeName];
CFRelease(paragraphStyleRef);
Этот код не работает.
РЕДАКТИРОВАТЬ:
CTParagraphStyleCreate
принимает указатель на массив CTParagraphStyleSetting
, например
CTParagraphStyleSetting styleSettings[] = {
{ kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), alignment},
{...},
{...}
};
Как я могу выделить этот массив и добавить в него что-то, не зная, сколько в нем будет материала? (как мне использовать malloc?)
vector
может оказаться лучшим решением, однако это выходит за рамки. 14.03.2013struct
в массивы байтов. Это кажется громоздким. Я не говорю, что это не сработает; просто это непривлекательно. 14.03.2013