0

出于某种原因,当我执行[string isEqualToString:string] 时,我得到一个“NO”。

在图片中,“项目”被声明为@property NSString *item; 我最初将其声明为平原NSString *item,但它仍然没有工作。

任何想法我做错了什么?

这是代码,我试图做一个屏幕截图来显示调试器输出,但没有足够的声誉。

- (IBAction)playCourseSelection:(id)sender
{
    // Get File Directory
    NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDirectory = [arrayPaths objectAtIndex:0];
    NSString *filePath = [docDirectory stringByAppendingString:@"/playCourse.txt"];

    // Write String for course
    NSString *writeString = item;

    BOOL test;

    test = [item isEqualToString:@"Add Course..."];

    if (test)
    {
        writeString = @"";
    };

    [writeString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

    // Close the file
}

self            EditCourseViewController *  0x0848c770
test            BOOL    '\0'
writeString NSString *  0x07676b80
item            NSString *  0x07676b80
4

2 回答 2

1

`@“添加课程...”不等于项目。

如果你看到 NSLog(@"item is %@",item); 控制台打印" item is (null)"

所以 [item isEqualToString:@"Add Course..."] 是 NO

于 2013-08-03T09:33:00.770 回答
-2

我想出了答案。谁知道这需要永远(就像一整天)。所以我猜 XCode 可以识别省略号 (...) 的点,并为它们分配一个不同于三个句点的值。我删除了三个时期,它的工作原理:

在此处输入图像描述

于 2013-08-03T08:29:11.303 回答