1

こんにちは、ユーザーがアクティブなセクションを持っているときに、IBAction がユーザーのタイムラインに投稿できるようにしようとしています。次のようなエラー メッセージが表示されます。関数 "x" の暗黙の宣言は無効です C99。この問題に関する投稿を読んでいましたが、運が悪く、正直なところ、これを正しく行っているかどうかはわかりません. fb アプリのアクセス許可を更新し、Graph API Explorer からオブジェクト コードを取得しましたが、自分のコードに正しく実装しているかどうかはわかりません。

これが私の投稿方法です:

-(void) aPost
{
    NSMutableDictionary<FBGraphObject> *object =
    [FBGraphObject openGraphObjectForPostWithType:@"website"
                                            title:@"CR Taxi APP"
                                            image:@"http://a4.mzstatic.com/us/r1000/047/Purple4/v4/05/cc/f2/05ccf23f-a409-1e73-a649-a5e6afc4e6eb/mzl.llffzfbp.175x175-75.jpg"
                                              url:@"https://itunes.apple.com/cr/app/cr-taxi/id674226640?mt=8"
                                      description:@"La nueva aplicación para llamar taxis!"];;

    [FBRequestConnection startForPostWithGraphPath:@"{id_from_create_call}"
                                       graphObject:object
                                 completionHandler:^(FBRequestConnection *connection,
                                                     id result,
                                                     NSError *error) {
                                     // handle the result
                                 }];

}

これが私のアクションメソッドです

- (IBAction)publishAction:(id)sender {

    if ([FBSession.activeSession.permissions
         indexOfObject:@"publish_actions"] == NSNotFound) {

        NSArray *writepermissions = [[NSArray alloc] initWithObjects:
                                     @"publish_stream",
                                     @"publish_actions",
                                     nil];


        [[FBSession activeSession]requestNewPublishPermissions:writepermissions defaultAudience:FBSessionDefaultAudienceFriends completionHandler:^(FBSession *aSession, NSError *error){
            if (error) {
                NSLog(@"Error on public permissions: %@", error);
            }
            else {
             **not on the code //( error on this one)   aPost(aSession, error);
            }


        }];

    }
    else {
        // If permissions present, publish the story
     **not on the code //(not an error on this one)  aPost(FBSession.activeSession, nil);
    }


}

助けてください!

ありがとうございました!

4

3 に答える 3

0

アクションメソッドコードのフォーマットは書かれているように不安定ですが、コンパイラエラーは実際には「関数 'aPost'の暗黙の宣言は無効なC99です」であると思います。コンパイラは、aPost への関数呼び出しを最初に検出したときにのみ、そのエラー メッセージを生成します。

aPost は、戻り値がなく、引数を取らないメソッドとして記述されています。これを C 関数として呼び出し、2 つの引数を渡そうとしていますが、コンパイラはこれをまったく新しい関数として解釈します。aPost はすべてハードコードされた文字列で書かれているので、おそらく aPost(arg1, arg2); への呼び出しを変更したいだけでしょう。[自分の投稿] に; (aPost と publishAction が同じクラスにある場合)。

于 2013-08-28T03:22:28.833 に答える