NSString concat 在设备上不起作用

Posted

技术标签:

【中文标题】NSString concat 在设备上不起作用【英文标题】:NSString concat doesn't work on device 【发布时间】:2015-06-03 11:18:45 【问题描述】:

我有一个小挑战。我正在使用以下代码来连接 NSString。在控制台上输出很好,在设备上它不起作用。我似乎无法弄清楚我错过了什么。

- (void)loadContent 
    gethtml = @"leap";
    NSLog(@"getHTML start: %@", getHTML);
    int showLeap = selectedLeap +1;
    NSString *leapString = [NSString stringWithFormat:@"%d", showLeap];

    if (showLeap<10) 
        getHTML = [getHTML stringByAppendingString:@"0"];
    

    getHTML = [getHTML stringByAppendingString:leapString];
    getHTML = [getHTML stringByAppendingString:selectedMenu];
    NSLog(@"getHTML complete: %@", getHTML);

在模拟器上的输出是:

2015-06-03 12:11:57.619 ios_TWW_EVOLUTION[917:582733] getHTML start: leap
2015-06-03 12:11:57.621 iOS_TWW_EVOLUTION[917:582733] getHTML complete: leap01_summary

在设备上的输出是:

2015-06-03 12:15:40.341 iOS_TWW_EVOLUTION[917:582733] getHTML start: leap
2015-06-03 12:15:40.346 iOS_TWW_EVOLUTION[917:582733] getHTML complete: getHTML complete: 

【问题讨论】:

如果您还可以打印变量 showLeap 和 selectedMenu 的内容会很有帮助 打开所有的警告并检查编译器告诉你的内容。 【参考方案1】:

我找到了解决方案。 [NSString stringByAppendingString... ] 方法在设备上不断返回 nil 有点奇怪。这是我使用 [NSString stringWithFormat...] 方法的解决方案;

int showLeap = selectedLeap +1;
NSString *first = @"leap";
NSString *second = @""; if (showLeap<10)  second=@"0";
NSString *third = [NSString stringWithFormat:@"%d", showLeap];
NSString *fourth = selectedMenu;
NSString *getHTML = [NSString stringWithFormat: @"%@%@%@%@", first, second, third, fourth];
NSLog(@"getHTML complete: %@", getHTML);

【讨论】:

你见过NSMutableString吗? 你是绝对正确的 Droppy。我应该把 getHTML 变成一个 mutableString。在我最初的问题中,我只是继续覆盖 NSString。那本来可以解决的。 另一个问题是 getHTML 在您的答案中是本地的,但在您的问题中是一个实例(或全局)。

以上是关于NSString concat 在设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xml 音频列表播放器在移动设备上不起作用,并且自动播放不起作用

EditText 的 onCreateContextMenu() 在真实设备上不起作用

UIButtons 在某些设备上不起作用

为啥我的输入在移动设备上不起作用?

Bootstrap 4列顺序在移动设备上不起作用[重复]

Bootstrap 折叠菜单链接在移动设备上不起作用