12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- * Copyright 2013 ZXing authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- #import "ZXPDF417BarcodeValue.h"
- #import "ZXPDF417Common.h"
-
- @interface ZXPDF417BarcodeValue ()
-
- @property (nonatomic, strong, readonly) NSMutableDictionary *values;
-
- @end
-
- @implementation ZXPDF417BarcodeValue
-
- - (id)init {
- self = [super init];
- if (self) {
- _values = [NSMutableDictionary dictionary];
- }
-
- return self;
- }
-
- - (void)setValue:(int)value {
- NSNumber *confidence = self.values[@(value)];
- if (!confidence) {
- confidence = @0;
- }
- confidence = @([confidence intValue] + 1);
- self.values[@(value)] = confidence;
- }
-
- - (ZXIntArray *)value {
- int maxConfidence = -1;
- NSMutableArray *result = [NSMutableArray array];
- for (NSNumber *key in [self.values allKeys]) {
- NSNumber *value = self.values[key];
- if ([value intValue] > maxConfidence) {
- maxConfidence = [value intValue];
- [result removeAllObjects];
- [result addObject:key];
- } else if ([value intValue] == maxConfidence) {
- [result addObject:key];
- }
- }
- NSArray *array = [[[result sortedArrayUsingSelector:@selector(compare:)] reverseObjectEnumerator] allObjects];
- return [ZXPDF417Common toIntArray:array];
- }
-
- - (NSNumber *)confidence:(int)value {
- return self.values[@(value)];
- }
-
- @end
|