gpt4 book ai didi

objective-c - if 语句没有按我的预期工作

转载 作者:行者123 更新时间:2023-12-03 17:28:35 25 4
gpt4 key购买 nike

以下代码不起作用。没有错误消息或任何东西......它只是工作。 (图像未显示在应有的位置)imgdtl 是一个 NSMutableDictionary

        if ([NSString stringWithFormat:@"%@",[filePath pathExtension]] == @".jpg")
{
NSImage *myimage = [[NSImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@" ,filePath]];
[imgdtl setObject: myimage forKey: @"image"];
[imgdtl setObject:[NSString stringWithFormat:@"%@" ,fileName] forKey: @"filename"];
}
else{
NSImage *myimage = [[NSImage alloc] initWithContentsOfFile:@"no_image.gif"];
[imgdtl setObject: myimage forKey: @"image"];
[imgdtl setObject:[NSString stringWithFormat:@"%@" ,fileName] forKey: @"filename"];
}

但是这个正在工作:

            NSImage *myimage = [[NSImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@" ,filePath]];
[imgdtl setObject: myimage forKey: @"image"];
[imgdtl setObject:[NSString stringWithFormat:@"%@" ,fileName] forKey: @"filename"];

我只想在格式为 .jpg 时加载图像,并且希望在文件具有任何其他扩展名时不加载它。有人可以告诉我我做错了什么吗?谢谢!

---编辑---

感谢所有评论,但以下代码给出了与上面相同的问题:

     if ([[NSString stringWithFormat:@"%@",[filePath pathExtension]] isEqualToString @".jpg"])

最佳答案

有数百个重复项。

您想要比较字符串的内容,而不是指针。 == 比较指针。要比较内容,请使用 NSString 的 -isEqualToString: 方法

if ([string isEqualToString :@"other string"]) .....

编辑

附带说明,将重复的代码移出条件 block ,它们是相同的,因此无需将它们放在那里两次:

NSImage *myImage;

if ([[filePath pathExtension] isEqualToString: @"jpg"])
{
myImage = [[NSImage alloc] initWithContentsOfFile: filePath]];

}
else{
myImage = [[NSImage alloc] initWithContentsOfFile:@"no_image.gif"];
}

[imgdtl setObject: myImage forKey: @"image"];
[imgdtl setObject: fileName forKey: @"filename"];

关于objective-c - if 语句没有按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com