SLComposeViewController

4
-(IBAction)post:(id)sender
{
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
    mySocialComposer = [[SLComposeViewController alloc]init];
    mySocialComposer = [SLComposeViewController    
    composeViewControllerForServiceType:SLServiceTypeFacebook];
    [mySocialComposer setInitialText:@"Hello World"];
    [mySocialComposer addImage:[IIImage imageNamed:@"myImage.png"]];
    
    [self presentViewController:mySocialComposer animated:YES completion:nil];
 }

 [mySocialComposer setCompletionHandler:^(SLComposeViewControllerResult result){

    NSString *outout = [[NSString alloc] init];
    
    switch (result) {
        case SLComposeViewControllerResultCancelled:
            outout = @"Post Cancled";
            break;
            case SLComposeViewControllerResultDone:
            outout = @"Post Done";
            
        default:
            break;
    }
    UIAlertView *myalertView = [[UIAlertView alloc]initWithTitle:@"FaceBook"  
    message:outout delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
    [myalertView show];
    }];


}

我希望在Facebook上发布一些没有图片的内容,但当我尝试用图片发布时,却出现错误提示。而当我在帖子中添加了图片时,则可以成功发布。但我只想发布没有图片的内容。有没有什么方法可以做到这一点?


第二次你这样做时,是因为你的互联网连接正常吗?如果你按下按钮多次,这种情况是否会持续发生? - MCKapur
是的,互联网一开始是正常的,但按下一个键后就持续出现这种情况。 - Usman
尝试摆脱SLComposeViewController的alloc和init行,因为您正在使用类方法composeViewControllerForServiceType重新创建,该方法返回一个自动释放的对象..... - MCKapur
我也做了那个,但是我遇到了同样的问题。而且还有一个错误信息:"<Error>: CGImageCreate: invalid image size: 0 x 0." - Usman
1个回答

2

尝试删除SLComposeViewController的alloc和init行,因为您正在使用类方法composeViewControllerForServiceType重新创建对象,该方法返回一个自动释放的对象.....(除非在ARC下)

所以代码应该像这样:

-(IBAction)post:(id)sender
{
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
mySocialComposer = [SLComposeViewController    
composeViewControllerForServiceType:SLServiceTypeFacebook];
[mySocialComposer setInitialText:@"Hello World"];

[self presentViewController:mySocialComposer animated:YES completion:nil];
 }

 [mySocialComposer setCompletionHandler:^(SLComposeViewControllerResult result){
NSString *outout = [[NSString alloc] init];

switch (result) {
    case SLComposeViewControllerResultCancelled:
        outout = @"Post Cancled";
        break;
        case SLComposeViewControllerResultDone:
        outout = @"Post Done";

    default:
        break;
}
UIAlertView *myalertView = [[UIAlertView alloc]initWithTitle:@"FaceBook"  
message:outout delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[myalertView show];
}];

否则,除非您在其他地方使用了mySocialComposer实例,否则代码看起来很好。

大家好,我没有使用 ARC。但是我发现问题出在我没有添加图片。如果我添加了图片,它可以正常工作多次。但是我不想添加图片,有没有办法可以在不添加图片的情况下解决这个问题呢?谢谢! - Usman
请查看这个教程:https://dev59.com/8Wcs5IYBdhLWcg3w433H - MCKapur
Null是我跟随的同一教程。我的问题是我想在没有任何图像或URL的情况下进行帖子。为了做到这一点,我将以下内容注释掉:[mySLComposerSheet addImage:[UIImage imageNamed:@"image"]]; [mySLComposerSheet addURL:[NSURL URLWithString:@"http://facebook.com"]];但是在执行此操作时,我遇到了错误<Error>:CGImageCreate: invalid image size:0 x 0. 在控制台中。 - Usman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接