我在这里有一个奇怪的行为。XCode 4 for iOS 6 (Iphone 4s) 在初始化部分我想从文件中读取数据。
NSString *rawData = [[NSString alloc] initWithContentsOfFile:filePathLib encoding:NSUTF8StringEncoding error:NULL];
NSArray *zeilen = [rawData componentsSeparatedByString:@";"];
NSLog(@"Check1 \n%@\n%@",rawData, zeilen);
好的,现在 LogItem 向我显示,读取了正确的数据。
现在我有一个 if 条件:
if ([zeilen count]==4){
A = [zeilen objectAtIndex:0];
B = [zeilen objectAtIndex:1];
C = [zeilen objectAtIndex:2];
D =[[zeilen objectAtIndex:3] intValue];
NSLog(@"Check2 \n%@\n%@ - %@ - %@ - %@ - %d",rawData, zeilen, A, B, C, D);
} else {
A = @"A0";
B = @"B0";
C = @"C0";
D = 3;
}
现在我运行这个程序。如果使用了第一个分支,程序就会崩溃,如果使用了第二个,它会完美运行。如果我使用断点,我可以观察到以下内容:
一个 NSString * 0x20063bf0 @"A123" (正确的值)
B、C、D 也正确
后来,崩溃前的一行:
文件读取分支:
A、B 和 C 不可用,D 正确。
默认,分支:
A、B、C、D 正确。
这些变量在其他任何地方都没有被操纵甚至被删除。
有谁知道,问题出在哪里?
我的假设:数组“zeilen”不包含 NSString 值,因此它们以某种方式被删除。但是,我并不真正相信这个理论,因为一开始这些元素是正确且可用的,只是后来它们被删除了。
任何想法?