【发布时间】:2013-01-27 18:10:38
【问题描述】:
我在这里有一个奇怪的行为。适用于 iOS 6 的 XCode 4 (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;
}
现在我运行这个程序。 如果使用第一个分支,程序会崩溃,如果使用第二个,它会完美运行。 如果我使用断点,我可以观察到以下内容:
A NSString * 0x20063bf0 @"A123"(正确值)
B、C、D 也正确
稍后,崩溃前的一行:
文件读取分支:
A、B、C 不可用,D 正确。
默认,分支:
A、B、C、D 正确。
变量没有在其他地方被操纵甚至被删除。
有谁知道问题出在哪里?
我的假设:数组“zeilen”不包含 NSString 值,因此它们以某种方式被删除。但是,我并不真正相信这个理论,因为一开始这些元素是正确且可用的,只是后来它们被删除了。
有什么想法吗?
【问题讨论】:
-
如果我特别在“变量查看器”中添加变量,它会告诉我:变量不是 NSString(在这个位置,以前显示正确的值)
标签: string object xcode4 parameters split