acq*_*sce 2 iphone objective-c
请考虑以下代码
NSString *param_string @"1:3:6:10:15:22:28:30";
NSArray *params = [param_string componentsSeparatedByString:@":"];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
NSMutableArray *convertedArray = [[NSMutableArray alloc] initWithCapacity:[params count]];
for(int i = 0; i < [params count]; i++){
[convertedArray insertObject:[formatter numberFromString:[params objectAtIndex:i] atIndex:i]];
}
Run Code Online (Sandbox Code Playgroud)
有没有更好,更有效的方法来实现这一目标?最初的param_string在实践中可能会更长,但我不希望params数组中有超过200个元素.
谢谢
这个怎么样.
将类别添加到NSString
@interface NSString(MyConverter)
-(NSDecimalNumber*) decimalNumberValue;
@end
@implementation NSString(MyConverter)
-(NSDecimalNumber*) decimalNumberValue
{
return [NSDecimalNumber decimalNumberWithString: self];
}
@end
Run Code Online (Sandbox Code Playgroud)
现在你可以做到这一点
NSString *param_string @"1:3:6:10:15:22:28:30";
NSArray *params = [param_string componentsSeparatedByString:@":"];
NSArray* decimalNumbers = [params valueForKey: @"decimalNumberValue"];
Run Code Online (Sandbox Code Playgroud)
显然,如果你想要一个除NSDecimalNumber之外的其他对象,只需相应地改变你的类别.该方法只需返回一个可以放入数组的对象.
| 归档时间: |
|
| 查看次数: |
1722 次 |
| 最近记录: |