处理searchresult
This commit is contained in:
@@ -426,34 +426,46 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)kb_formattedSearchResultString:(id)dataValue {
|
- (NSString *)kb_formattedSearchResultString:(id)dataValue {
|
||||||
|
// data 不是数组就直接返回空串
|
||||||
if (![dataValue isKindOfClass:[NSArray class]]) { return @""; }
|
if (![dataValue isKindOfClass:[NSArray class]]) { return @""; }
|
||||||
NSArray *list = (NSArray *)dataValue;
|
NSArray *list = (NSArray *)dataValue;
|
||||||
|
|
||||||
NSMutableArray<NSString *> *segments = [NSMutableArray array];
|
NSMutableArray<NSString *> *segments = [NSMutableArray array];
|
||||||
|
|
||||||
[list enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
[list enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||||
NSString *payload = nil;
|
NSString *payload = nil;
|
||||||
|
|
||||||
if ([obj isKindOfClass:[NSDictionary class]]) {
|
if ([obj isKindOfClass:[NSDictionary class]]) {
|
||||||
id val = obj[@"payload"];
|
id val = obj[@"payload"];
|
||||||
if ([val isKindOfClass:[NSString class]]) {
|
if ([val isKindOfClass:[NSString class]]) {
|
||||||
payload = (NSString *)val;
|
payload = (NSString *)val;
|
||||||
}
|
}
|
||||||
} else if ([obj isKindOfClass:[NSString class]]) {
|
} else if ([obj isKindOfClass:[NSString class]]) {
|
||||||
|
// 兼容后端直接给字符串数组的情况
|
||||||
payload = (NSString *)obj;
|
payload = (NSString *)obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
payload = [payload stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
payload = [payload stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||||
if (payload.length > 0) {
|
if (payload.length > 0) {
|
||||||
NSString *line = [NSString stringWithFormat:@"%lu. %@", (unsigned long)(segments.count + 1), payload];
|
// 每一个 payload 就是一段
|
||||||
[segments addObject:line];
|
[segments addObject:payload];
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
|
|
||||||
if (segments.count == 0) { return @""; }
|
if (segments.count == 0) { return @""; }
|
||||||
NSString *title = KBLocalized(@"Search result");
|
|
||||||
NSMutableString *result = [NSMutableString stringWithFormat:@"\t%@:", title.length > 0 ? title : @"Search result"];
|
// 用 \t 拼起来,KBStreamTextView 会按 \t 拆成多个 label
|
||||||
for (NSString *line in segments) {
|
NSMutableString *result = [NSMutableString string];
|
||||||
[result appendFormat:@"\t%@", line];
|
|
||||||
}
|
[segments enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
||||||
|
// 每段前面加一个 \t,保证是新的一段
|
||||||
|
[result appendFormat:@"\t%@", obj];
|
||||||
|
}];
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (NSString *)kb_pendingSplitSuffixForString:(NSString *)text {
|
- (NSString *)kb_pendingSplitSuffixForString:(NSString *)text {
|
||||||
static NSString * const token = @"<SPLIT>";
|
static NSString * const token = @"<SPLIT>";
|
||||||
if (text.length == 0) { return @""; }
|
if (text.length == 0) { return @""; }
|
||||||
|
|||||||
Reference in New Issue
Block a user