【问题标题】:Parameters of a object get lost (XCode for IPhone)对象的参数丢失(iPhone 的 XCode)
【发布时间】: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


【解决方案1】:

解决了:

替换:

A      = [zeilen objectAtIndex:0];

通过

A      = [[NSString alloc] stringWithFormat:@"%@",[zeilen objectAtIndex:0]];

内存未分配,因此丢失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多