是否可以增加一个字母,即在Objective-C中A + 1 = B?

Jor*_*ith 4 iphone objective-c increment char nsstring

我习惯用C或C++来做这件事,即:

myChar++;
Run Code Online (Sandbox Code Playgroud)

应该递增一封信.

我试图在Objective-C中做同样的事情,除了我有一个NSString开始(NSString总是只有一个字母).我已经尝试将NSString转换为char*,但是这种方法已被弃用,其他实现此方法似乎不起作用.

我应该如何将NSString转换为char* - 或者,有没有办法在objective-c中增加一个字符而不需要char*?

谢谢 :)

Dan*_*son 12

// Get the first character as a UTF-16 (2-byte) character:
unichar c = [string characterAtIndex:0];
// Increment as usual:
c++;
// And to turn it into a 1-character string again:
[NSString stringWithCharacters:&c length:1];
Run Code Online (Sandbox Code Playgroud)

当然,这假设递增Unicode字符是有意义的,这对于ASCII范围字符有效,但可能不适用于其他字符.

  • `c ++;`让我轻笑. (6认同)
  • 它只适用于little-endian系统.这意味着所有的Intel Mac,但没有PowerPC Mac.对于正确的代码,您可以使用char并使用`[string getBytes:&yourChar maxLength:1 usedLength:NULL encoding:NSUTF8StringEncoding options:NSStringEncodingConversionAllowLossy range:NSMakeRange(0,1)remainingRange:NULL]`. (3认同)