在UITextField中,我们仅输入数字并限制最多3个数字用于下面的代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger newLength = [textField.text length] + [string length] - range.length;
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS_ONLY] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
while (newLength < CHARACTER_LIMIT) {
return [string isEqualToString:filtered];
}
/* Limits the no of characters to be enter in text field */
return (newLength > CHARACTER_LIMIT ) ? NO : YES;
}
Run Code Online (Sandbox Code Playgroud)
当我长按文本字段(如下图所示)并在两个数字之间输入字符串时,它也允许所有特殊字符和租船人.

我正在使用FMDB包装器我使用此代码
- (BOOL)update:(NSString *) Body fromValue:(NSString *)froms {
BOOL success = NO;
FMResultSet *rs;
//I have **searchTable** and in that folder name **OFFICE**
rs = [self.database executeQuery:@"select searchId,body from searchTable WHERE folder = 'OFFICE'"];
NSInteger primaryKey = -1;
NSString *body = nil;
NSString *md5OfSearchEmailBody = nil;
while ([rs next]) {
primaryKey = [rs intForColumn:@"searchId"];
body = [rs stringForColumn:@"body"];
}
[rs close];
return success;
}
Run Code Online (Sandbox Code Playgroud)
第一次
- (BOOL)update:(NSString *) Body fromValue:(NSString *)froms{
}
Run Code Online (Sandbox Code Playgroud)
方法工作正常.在循环第二次它不工作
调用sqlite3_step(21:out of memory)rs时出错
如何解决这个问题呢
我在使用设备时使用代码删除临时目录文件.
-(void) clearAllTempFiles {
NSString *path = NSTemporaryDirectory();
if ([path length] > 0)
{
NSError *error = nil;
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL deleted = [fileManager removeItemAtPath:path error:&error];
if (deleted != YES || error != nil)
{
}
else{
// Recreate the Documents directory
[fileManager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:&error];
}
}
}
Run Code Online (Sandbox Code Playgroud)
它不能正常工作?这是从临时目录中删除文件的正确代码?
请帮助我?