2

我如何忽略结果中的最后 2 行,因为该行显示如下统计信息:

---
1113 entries, 25351 bytes used, 7417 bytes free.

我也不确定我在下面得到这个错误: *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSDictionary initWithObjects:forKeys:]:对象计数(1116)与键计数不同(1117)'

NSString *result ...
NSArray *strings = [result componentsSeparatedByCharactersInSet:
                   [NSCharacterSet characterSetWithCharactersInString:@"=\n"]];

NSMutableArray *keys = [NSMutableArray new];
NSMutableArray *values = [NSMutableArray new];

  for (int i = 0; i < strings.count; i+=1) {
            if (i % 2 == 0) { // if i is even
                [keys addObject:strings[i]];
            }
            else {
                [values addObject:strings[i-1]];

            }
        }

Sample data:
NC_AllowedWebHosts=
NC_BgeLAN=br1
NC_Doc=/tmp/dhcpd
NC_ExPts=1863
NC_Redirect=1
[...]
bt_binary_custom=/path/to/binaries/directory
bt_blocklist=0
bt_blocklist_url=http://list.g.com/?list=bt_level1
bt_check=1
4

1 回答 1

2

每次strings.count奇数时都会出现此错误,因为循环看到的次数i % 2 == 0大于它看到的次数i % 2 == 1

请注意,您的循环将尝试插入相同的键和值,因为strings[i-1]何时i是奇数是指strings具有偶数索引的前面。

以下是您可以解决的方法:

for (int i = 0; i+1 < strings.count; i += 2) {
    [keys addObject:strings[i]];
    [values addObject:strings[i+1]];
}
于 2013-08-03T01:11:30.083 回答