//将属性字符串转换成字符串 以下方法中提供两种方法,根据需求选取
- (NSString *)textString
{
/*
* 第一种方法:
*/
NSAttributedString *attStr = _messageInputView.attributedText;
NSMutableAttributedString *resutlAtt = [[NSMutableAttributedString alloc] initWithAttributedString:attStr];
__block NSUInteger index = 1;
__weak __typeof(self) weakSelf = self;
//枚举出所有的附件字符串
__block NSUInteger base = 0;
[attStr enumerateAttribute:NSAttachmentAttributeName inRange:NSMakeRange(0, attStr.length)
options:0
usingBlock:^(id value, NSRange range, BOOL *stop) {
if (value && [value isKindOfClass:[ImageTextAttachment class]]) {
NSString *p = [NSString stringWithFormat:@"{{p%lu}}", (unsigned long)index];
[resutlAtt replaceCharactersInRange:NSMakeRange(range.location + base, range.length)
withString:p];
if ([weakSelf.url isEqualToString:@""] || weakSelf.url == nil) {
weakSelf.url = [NSString stringWithFormat:@"%@=%@", p, _imgUrlArray[index - 1]];
} else {
weakSelf.url = [NSString stringWithFormat:@"%@,%@=%@", weakSelf.url, p, _imgUrlArray[index - 1]];
}
base += p.length - 1;
index++;
}
}];
/*
* 第二种方法:
*/
// [attStr enumerateAttributesInRange:NSMakeRange(0, attStr.length) options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(NSDictionary *attrs, NSRange range, BOOL *stop) {// // //NSTextAttachment value类型 key-NSAttachment
从字典中取得那一个图片// //获取当前替换字符串的长度// __block NSUInteger base = 0;// NSTextAttachment *textAtt = attrs[@"NSAttachment"];// if (textAtt)// {// NSString *p = [NSString stringWithFormat:@"{{p%lu}}", (unsigned long)index];// [resutlAtt replaceCharactersInRange:NSMakeRange(range.location
+ base, range.length)// withString:p];// if ([weakSelf.url isEqualToString:@""] || weakSelf.url == nil) {// // weakSelf.url = [NSString stringWithFormat:@"%@=%@", p, _imgUrlArray[index]];// } else {// weakSelf.url = [NSString stringWithFormat:@"%@,%@=%@",
weakSelf.url, p, _imgUrlArray[index]];// // }// // base += p.length;// index++;// // }// // }]; DLog(@"---resutlAtt.string----- %@", resutlAtt.string) return resutlAtt.string;