首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将NSString作为参数传递给formatWithString?

如何将NSString作为参数传递给formatWithString?
EN

Stack Overflow用户
提问于 2014-12-05 14:04:52
回答 3查看 1.3K关注 0票数 0

这是我的应用程序的一个基本部分,实际上它是一个功能。

代码语言:javascript
运行
复制
-(void)appendArguments:(NSString *)argument {
NSString *temp = [NSString stringWithFormat:_path, argument;
}

但这是不可能的。这里,_path是一个包含整数参数的字符串的实例变量。字符串参数包含整数,例如:

代码语言:javascript
运行
复制
_path = @"I got %d apples, ate %d, I am left with %d";
argument = @"7,3,7-3";
*temp = [NSString stringWithFormat:_path, argument;

我们是否可以将参数数组作为对象,并将它们替换为指针参数。

因为这个原因,我的应用程序被搁置了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-05 14:15:10

您可以使用va_list

代码语言:javascript
运行
复制
void myLog(NSString *format, ...)
{
#ifdef DEBUG
    va_list ap;
    va_start(ap, format);
    NSString *string = [[NSString alloc] initWithFormat:format arguments:ap];
    fprintf(stdout, "%s", string.UTF8String);
    va_end(ap);
#endif
}


@implementation MyViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    myLog(@"%s, %@\n", __func__, self);
}
票数 -1
EN

Stack Overflow用户

发布于 2014-12-05 14:18:49

是的你能做到的。使用NSMutableString和附加字符串为字符串创建自定义格式。

代码语言:javascript
运行
复制
NSString *_path = @"I got %d apples, ate %d, I am left with %d";
NSString *argument = @"7,3,7,-3";

NSMutableString *fieldString = [NSMutableString new];
[fieldString appendString:[NSString stringWithFormat:@"@\" %@\" ",_path]];
[fieldString appendString:@","];
[fieldString appendString:argument];

NSString *strField = [NSString stringWithString:fieldString];
fieldString = nil;
票数 0
EN

Stack Overflow用户

发布于 2014-12-05 14:25:10

代码语言:javascript
运行
复制
     NSString* arguments = @"7,3,7-3";
        [self appendArguments:arguments];

    -(void)appendArguments:(NSString *)argument {

    NSString* _path = @"I got %d apples, ate %d, I am left with %d-%d";
     NSArray*path=[[NSArray alloc]init];
     path=[argument componentsSeparatedByString:@","];
 NSString *temp = [NSString stringWithFormat:_path, [path[0] intValue],[path[1]   intValue],[path[0] intValue],[path[1] intValue] ];

    NSLog(@"%@",temp);

            }

结果

代码语言:javascript
运行
复制
I got 7 apples, ate 3, I am left with 7-3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27317633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档