我正在尝试为FMDB创建实用程序方法,该方法将使用值的NSArray并根据数组中的值数返回用于IN语句的占位符字符串。

我想不出一种创建此字符串的优雅方法,我是否缺少一些NSString实用程序方法:

// The contents of the input aren't important.
NSArray *input = @[@(55), @(33), @(12)];

// Seems clumsy way to do things:
NSInteger size = [input count];
NSMutableArray *placeholderArray = [[NSMutableArray alloc] initWithCapacity:size];
for (NSInteger i = 0; i < size; i++) {
    [placeholderArray addObject:@"?"];
}

NSString *output = [placeholderArray componentsJoinedByString:@","];
// Would return @"?,?,?" to be used with input

最佳答案

那这个呢?

NSArray *input = @[@(55), @(33), @(12)];

NSUInteger count = [input count];
NSString *output = [@"" stringByPaddingToLength:(2*count-1) withString:@"?," startingAtIndex:0];
// Result: ?,?,?
stringByPaddingToLength填充给定的字符串(在这种情况下为空字符串)
通过追加@"?,"模式中的字符,将其更改为给定长度。

关于ios - 使用值NSArray有效创建占位符模板NSString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19384072/

10-16 13:43