Skip to content

Commit 53a9e02

Browse files
doumafangYorkShen
authored andcommitted
* [iOS] fix cssSelector's parse with compatible ""
1 parent b57f48a commit 53a9e02

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListComponent.mm

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,6 @@ - (void)queryElementAll:(NSString *)virtalElementInfo cssSelector:(NSString *)cs
405405
[self _queryElement:virtalElementInfo cssSelector:cssSelector callback:callback isAll:YES];
406406
}
407407

408-
409408
- (NSString *)_refForVirtalElementInfo:(NSString *)virtalElementInfo
410409
{
411410
NSArray *stringArray = [virtalElementInfo componentsSeparatedByString:@"@"];
@@ -485,13 +484,16 @@ - (void)_matchComponentForCSSSelector:(NSString *)cssSelector component:(WXCompo
485484

486485
- (BOOL)_parseCssSelector:(NSString *)cssSelector component:(WXComponent *)component
487486
{
487+
if (!cssSelector) {
488+
return NO;
489+
}
488490
if ([cssSelector hasPrefix:@"["]&&[cssSelector hasSuffix:@"]"]) {
489-
NSArray *selectorArray = [cssSelector componentsSeparatedByString:@"="];
491+
NSCharacterSet *unwantedChars = [NSCharacterSet characterSetWithCharactersInString:@"\"[]"];
492+
NSString *requiredString = [[cssSelector componentsSeparatedByCharactersInSet:unwantedChars] componentsJoinedByString:@""];
493+
NSArray *selectorArray = [requiredString componentsSeparatedByString:@"="];
490494
if (selectorArray.count == 2) {
491-
NSString *prefixString = selectorArray[0];
492-
NSString *suffixString = selectorArray[1];
493-
NSString *attribute = [prefixString substringWithRange:NSMakeRange(1,prefixString.length-1)];
494-
NSString *value = [suffixString substringWithRange:NSMakeRange(0, suffixString.length-1)];
495+
NSString *attribute = selectorArray[0];
496+
NSString *value = selectorArray[1];
495497
NSDictionary *componentAttrs = component.attributes;
496498
NSString *valueString = [NSString stringWithFormat:@"%@",componentAttrs[attribute]];
497499
if ([valueString isEqualToString:value]) {

0 commit comments

Comments
 (0)