在 Xcode 4.6 中,我在 .xib 页面上有一列标签,每个标签都由文本组成,其右侧是一组播放按钮,用于播放每个音频,例如在 .m 代码中:
-(IBAction)pushButton {
NSString *mytextfield = mylabelname.text;
NSString *path = [[NSBundle mainBundle] pathForResource:@"mysound" ofType:@"mp3"];
if(theAudio)[theAudio release];
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
theAudio.volume = 1.0;
[theAudio play];
}
播放声音时,我将标签“mylabelname”的关联文本分配给字段 mytextfield。.h 文件具有 IBOutlet UILabel *mylabelname; UIViewController 中的声明,.m 具有 -(void)mylabelname 并且 Outlet UILabel 连接到 xib 中的标签。
在 .m 文件中,我像这样执行 Facebook 发布代码:
-(IBAction)ShareFB1 {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
slComposeViewController = [[SLComposeViewController alloc] init];
slComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[slComposeViewController setInitialText:[NSString stringWithFormat:@"Posting to Facebook: %@", mytextfield]];
[slComposeViewController addURL:[NSURL URLWithString:@"http://stackoverflow.com"]];
[self presentViewController:slComposeViewController animated:YES completion:NULL];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Facebook Account" message:@"There are no Facebook accounts confiured, configure or create accounts in Settings." delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
在 .m 文件中,我收到关于 NSString 的警告:未使用的变量 mylabelname。我还收到有关slComposeViewController setInitialText
方法的错误:使用未声明的标识符“mylabelname”。
我得到这个工作的唯一方法是将NSString *mytextfield = mylabelname.text;
,-(IBAction)ShareFB1
并且标签值可以发布到 Facebook,但由于我在页面上有其他标签,我希望 NSString 值分配在slComposeViewController setInitialText
. 有什么建议么?
谢谢!抢