0

在 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. 有什么建议么?

谢谢!抢

4

1 回答 1

1

您需要在 .h 文件中创建一个属性

@property(strong)NSMutableString *stringToPost;//if you wish to append, if replace then use NSString

在您的 .m 文件中,在 viewDidLoad 方法中

self.stringToPost=[NSMutableString new];

在所有 IBActions 方法中,您可以附加文本(如果您愿意)或替换先前保存的字符串:

//for appending
[self.stringToPost appendFormat:@"%@",yourTextField.text];

//for replacing with new one
self.stringToPost=yourTextField.text;
于 2013-03-31T05:47:46.443 回答