NSString的正确长度

时间:2012-09-25 07:32:05

标签: iphone objective-c ios5 nsstring

我正在开发我的第一个iPhone应用程序,在那个应用程序中我必须计算NSString的长度,我已经在SO上尝试了可用的方法和解决方案但是长度总是错误的。例如,对于字符串" test4" NSString.length返回12,而它应返回5.

我尝试过NSString的长度属性和lengthOfBytesUsingEncoding,但两者都返回相同的结果。

任何帮助都将不胜感激。

修改

NSString *string = @"test4";
[string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; // returns 12
string.length; // returns 12

完整代码

+(NSString *)AES256Encrypt:(NSString *)data withKey:(NSString *)rawkey{

    rawkey = [NSString stringWithFormat:@"%@%@", @"123456789023456", rawkey];
    rawkey = [rawkey substringWithRange:NSMakeRange(0, 32)];

    NSData *key = [rawkey dataUsingEncoding:NSUTF8StringEncoding];
    NSData *iv = [key subdataWithRange:NSMakeRange(0, 16)];
    const char *bytes = [data cStringUsingEncoding:NSUTF8StringEncoding];
    NSLog(@"%d", data.length); // prints 12
    data = [self encode:bytes length:data.length];

    NSData *rawData = [data dataUsingEncoding:NSUTF8StringEncoding];

    CCCryptorStatus status = kCCSuccess;

    NSData *encrypted = [rawData dataEncryptedUsingAlgorithm:kCCAlgorithmAES128 key:key initializationVector:iv options:kCCOptionPKCS7Padding error:&status];

    NSString *text = [encrypted base64EncodedString];
    return text;
}

由于

1 个答案:

答案 0 :(得分:0)

NSString *myString = @"test4";
int i =myString.length;
NSLog(@"Count =%d",i); 

打印Count = 5