我有点困惑为什么我得到的格式字符串'
没有使用ERROR'数据参数有没有其他人在Xcode 4.5 for iOS6中获得此功能或修复此问题?
- (IBAction)facebookPost:(id)sender
{
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
mySLComposerSheet = [[SLComposeViewController alloc] init];
mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[mySLComposerSheet setInitialText:[NSString stringWithFormat:@"I'm listening to Boilerroom Recordings via the Boilerroom iPhone Application",mySLComposerSheet.serviceType]];
[mySLComposerSheet addImage:[UIImage imageNamed:@"BOILERROOM_LOGO_250x250.png"]];
[self presentViewController:mySLComposerSheet animated:YES completion:nil];
}
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
NSLog(@"dfsdf");
switch (result) {
case SLComposeViewControllerResultCancelled:
break;
case SLComposeViewControllerResultDone:
break;
default:
break;
}
}];
}
答案 0 :(得分:11)
您遇到的错误非常自我解释:当您使用stringWithFormat
时,您应该在格式字符串中提供一些格式化占位符(如%@
作为对象的占位符,{{ 1}}表示整数,%d
作为浮点数的占位符等,就像所有类似printf的方法一样。)
但你不要使用任何。因此,格式字符串之后放置的参数%f
未被格式字符串(没有占位符)使用,并且在此处无用。因此,错误说“数据参数(即mySLComposerSheet.serviceType
)未被格式字符串”使用。
所以解决方案取决于你打算做什么:
如果您确实要在字符串中的某处插入mySLComposerSheet.serviceType
,只需添加serviceType
(因为%@
是serviceType
,因此是对象)占位符在您的格式字符串中,在您要插入的NSString*
值的位置。例如:
mySLComposerSheet.serviceType
但我想你实际上并不想在initialText字符串中的任何地方插入[mySLComposerSheet setInitialText:[NSString stringWithFormat:@"I'm listening to Boilerroom Recordings via the Boilerroom iPhone Application and want to share it using %@ !",mySLComposerSheet.serviceType]];
值(我想知道为什么你在第一个地方添加了这个参数)。在这种情况下,您可以简单地删除对serviceType
的调用的这个无用的附加参数。或者更好,因为此时您的stringWithFormat:
电话根本不会有任何格式占位符,例如stringWithFormat
,完全没用{{1}无论如何,所以只需直接使用字符串文字!
%@