最近我在我的项目中添加了一个 rot13 函数,所以我可以 rot13 一个我想要的字符串。示例代码是在互联网上找到的。在我旋转了一个字符串之后,我收到了一个内存不足的警告,并且 100% 确定这是由于 rot 函数造成的。在 rot13 之前没有内存不足的警告。这是我的代码: rot13.h
#import <Foundation/NSString.h>
@interface NSString (rot13)
+ (NSString *)rot13:(NSString *)theText;
@end
rot13.m
#import "rot13.h"
@implementation NSString (rot13)
+ (NSString *)rot13:(NSString *)theText {
NSMutableString *holder = [[NSMutableString alloc] init];
unichar theChar;
int i;
for(i = 0; i < [theText length]; i++) {
theChar = [theText characterAtIndex:i];
if(theChar <= 122 && theChar >= 97) {
if(theChar + 13 > 122)
theChar -= 13;
else
theChar += 13;
[holder appendFormat:@"%hhd", (char)theChar];
} else if(theChar <= 90 && theChar >= 65) {
if((int)theChar + 13 > 90)
theChar -= 13;
else
theChar += 13;
[holder appendFormat:@"%C", theChar];
} else {
[holder appendFormat:@"%C", theChar];
}
}
return [NSString stringWithString:holder];
}
@end
我像这样 rot13 我的字符串:
NSString *mystring=[defaults stringForKey:@"name"];
NSString *rotted = [NSString rot13:mystring];
有什么帮助吗?我应该释放一些东西吗?为什么这个简单的任务调用内存不足警告?