如何忽略结果中的最后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
答案 0 :(得分: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]];
}