У меня есть образец проблемы, и я решил это, как показано ниже.
CGSize imageSize = CGSizeMake(64, 64);
UIColor *fillColor = [UIColor colorWithRed:228/255.0 green:228/255.0 blue:228/255.0 alpha:1.0];
UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
[fillColor setFill];
CGContextFillRect(context, CGRectMake(0, 0, imageSize.width, imageSize.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.searchController.searchBar.scopeBarBackgroundImage = image;
as.logical (c (0,0,0,1)) == c (F, F, F, T)
blockquote>Объяснение
В
R
значенияnumeric
обрабатываются иначе, чем значенияlogical
.В вашем сценарии, поскольку
2
является первым элементом массива, он возвращается для второй операции подмножества (и 0-го элемента нет).PS Только для нескольких операций (например,
==
) логические значения сначала приводятся к числовым. Спасибо @IceCreamTouchan, чтобы добавить это в комментариях выше.