Ios 属性字符串的组合x个数

Ios 属性字符串的组合x个数,ios,objective-c,nsdate,nsmutableattributedstring,Ios,Objective C,Nsdate,Nsmutableattributedstring,我想问一下如何组合属性字符串的x个数并生成单个字符串 NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:health.storeArry]; NSLog(@"%lu",(unsigned long)array.count); for (NSDate * str in array) { NSDateFormatter *date

我想问一下如何组合属性字符串的x个数并生成单个字符串

    NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:health.storeArry];
            NSLog(@"%lu",(unsigned long)array.count);
            for (NSDate * str in array) {
                NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
                dateFormatter.timeZone = [NSTimeZone localTimeZone];
                dateFormatter.timeStyle = NSDateFormatterShortStyle;
                NSString * dateTimeString = [dateFormatter stringFromDate:str];

                NSString* str=dateTimeString;
                NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:str];

                [attrString addAttribute: NSFontAttributeName value:  [UIFont fontWithName:@"Helvetica" size:15] range: NSMakeRange(str.length-2,2)];
                NSLog(@"%@",attrString);

                [attrString appendAttributedString:attrString];

}
这是我的密码。我发现两个或三个AttibuteString的ans已被禁用,但我有一个数组,其中x number
nsdate
对象。我想把它们连接在一个字符串中。我怎样才能做到这一点?
谢谢

像这样做

NSArray *arr = [NSArray arrayWithObjects:@"one",@"two",@"three", nil];
NSMutableString *str = [[NSMutableString alloc]init];

for (int i = 0; i < arr.count; i++) {

    str = [str stringByAppendingString:[arr objectAtIndex:i]];

}
NSLog(@"final str is %@",str);

然后你可以附加它。因此,从数组中获取属性字符串,将其转换为nsstring并附加它。

执行类似操作

NSArray *arr = [NSArray arrayWithObjects:@"one",@"two",@"three", nil];
NSMutableString *str = [[NSMutableString alloc]init];

for (int i = 0; i < arr.count; i++) {

    str = [str stringByAppendingString:[arr objectAtIndex:i]];

}
NSLog(@"final str is %@",str);

然后你可以附加它。因此,从数组中获取属性字符串,将其转换为nsstring并将其追加。

您的问题是每次创建新的
NSMutableAttributedString
。你需要把它放在for循环之外

NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:health.storeArry];
NSLog(@"%lu",(unsigned long)array.count);

NSMutableAttributedString *finalAttributedString = [NSMutableAttributedString alloc] init];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
dateFormatter.timeStyle = NSDateFormatterShortStyle;

for (NSDate *str in array) {

    NSString *dateTimeString = [dateFormatter stringFromDate:str];

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:dateTimeString];

    [attrString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica" size:15] range:NSMakeRange(str.length-2,2)];
     NSLog(@"%@",attrString);

    [finalAttributedString appendAttributedString:attrString];

}
//Here, you can read the finalAttributedString

不相关提示:您应该在for循环之外分配/初始化
NSDateFormatter
。它始终是相同的,加上
NSDateFormatter
的alloc/init正在消耗。

您的问题是每次创建一个新的
nsmutableAttributeString
时都要创建它。你需要把它放在for循环之外

NSMutableArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:health.storeArry];
NSLog(@"%lu",(unsigned long)array.count);

NSMutableAttributedString *finalAttributedString = [NSMutableAttributedString alloc] init];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone localTimeZone];
dateFormatter.timeStyle = NSDateFormatterShortStyle;

for (NSDate *str in array) {

    NSString *dateTimeString = [dateFormatter stringFromDate:str];

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:dateTimeString];

    [attrString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica" size:15] range:NSMakeRange(str.length-2,2)];
     NSLog(@"%@",attrString);

    [finalAttributedString appendAttributedString:attrString];

}
//Here, you can read the finalAttributedString

不相关提示:您应该在for循环之外分配/初始化
NSDateFormatter
。它始终是同一个,加上
NSDateFormatter
的alloc/init正在使用。

我想组合NSMutableAttributedString。。。。您的代码用于simplestring。您有属性字符串数组吗?实际上,您不能将
stringByAppendingString
用于属性字符串。我想组合NSMutableAttributeString。。。。您的代码适用于simplestring。您有属性字符串数组吗?实际上,您不能将
stringByAppendingString
用于属性字符串。您的代码中有什么不起作用?您需要在for循环外部定义NSMutableAttributedString。不相关提示:您应该在for循环之外分配/初始化
NSDateFormatter
。它总是相同的,加上
NSDateFormatter
的alloc/init正在使用。您的代码中有什么不起作用?您需要在for循环外部定义NSMutableAttributedString。不相关提示:您应该在for循环之外分配/初始化
NSDateFormatter
。它始终是相同的,加上
NSDateFormatter
的alloc/init正在使用。