我想使用以下命令打开另一个应用程序
[[UIApplication sharedApplication]openURL:[[NSURL alloc]initWithString:myString]];与myString一样的对数
NSString *myString=[NSString stringWithFormat:@"testHandleOpenUrl://?%@",@"123"];它工作得很好,但是如果我尝试使用NSDictionary,比如
NSString *myString=[NSString stringWithFormat:@"testHandleOpenUrl://?%@",userInfo];它会失败,不会出现错误
希望你能帮助我。
发布于 2012-01-02 23:58:40
尝试枚举字典中的所有元素,并将这些元素附加到URL。
NSMutableString *params = [[[NSMutableString alloc] init] autorelease];
NSEnumerator *keys = [userInfo keyEnumerator];
NSString *name = [keys nextObject];
while (nil != name) {
[params appendString: name];
[params appendString: @"="];
[params appendString: [userInfo objectForKey:name]];
name = [keys nextObject];
if (nil != name) {
[params appendString: @"&"];
}
}
NSString *myString=[NSString stringWithFormat:@"testHandleOpenUrl://?%@",params];发布于 2012-01-02 23:47:44
NSString * paramString = @"";
int i = 0;
for(NSString * key in [userInfo allKeys]){
NSString * value = (NSString*)[userInfo objectForKey:key];
NSString * valueParam = [NSString stringWithFormat:@"%@%@=%@",(i==0)?@"?":@"&",key,value];
paramString = [paramString stringByAppendingString:valueParam];
i++;
}
NSString *myString=[NSString stringWithFormat:@"testHandleOpenUrl://%@", paramString];发布于 2012-01-02 23:51:38
当您在格式字符串中使用NSDictionary时,您会得到如下所示的URL:
testHandleOpenUrl://?{
bar = foo;
}在userInfo上调用-description的结果将简单地替换为%@。您可能希望在URL中传递字典中包含的参数。可能是这样的:
NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"bar", @"foo", nil];
NSString *myString=[NSString stringWithFormat:@"testHandleOpenUrl://?foo=%@", [userInfo objectForKey:@"foo"]];
NSLog(@"myString: %@", myString); // prints "myString: testHandleOpenUrl://?foo=bar"https://stackoverflow.com/questions/8702512
复制相似问题