dispatch_block_create - “No matching function for call to 'dispatch_block_create'”












0















I am trying to create a block using dispatch_block_create in a .mm file



dispatch_block_t testBlock = dispatch_block_create(0, ^{
NSLog(@"Hello");
});
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1), dispatch_get_main_queue(), testBlock);
dispatch_block_cancel(testBlock);


And Xcode complains:




No matching function for call to 'dispatch_block_create'




I have even tried adding:



#import <dispatch/block.h>









share|improve this question

























  • It is very strange... do you have the latest XCode version installed? Did you check you include UIKit? I tried your code right now and didn't have any build issue (no extra includes required!) Try to make the usual cleanup: delete all derived data and restart xcode.

    – FrizzTheSnail
    Jan 2 at 14:47













  • did you try it on a .mm file? The same works for me on .m file

    – Neelesh
    Jan 2 at 15:14
















0















I am trying to create a block using dispatch_block_create in a .mm file



dispatch_block_t testBlock = dispatch_block_create(0, ^{
NSLog(@"Hello");
});
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1), dispatch_get_main_queue(), testBlock);
dispatch_block_cancel(testBlock);


And Xcode complains:




No matching function for call to 'dispatch_block_create'




I have even tried adding:



#import <dispatch/block.h>









share|improve this question

























  • It is very strange... do you have the latest XCode version installed? Did you check you include UIKit? I tried your code right now and didn't have any build issue (no extra includes required!) Try to make the usual cleanup: delete all derived data and restart xcode.

    – FrizzTheSnail
    Jan 2 at 14:47













  • did you try it on a .mm file? The same works for me on .m file

    – Neelesh
    Jan 2 at 15:14














0












0








0








I am trying to create a block using dispatch_block_create in a .mm file



dispatch_block_t testBlock = dispatch_block_create(0, ^{
NSLog(@"Hello");
});
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1), dispatch_get_main_queue(), testBlock);
dispatch_block_cancel(testBlock);


And Xcode complains:




No matching function for call to 'dispatch_block_create'




I have even tried adding:



#import <dispatch/block.h>









share|improve this question
















I am trying to create a block using dispatch_block_create in a .mm file



dispatch_block_t testBlock = dispatch_block_create(0, ^{
NSLog(@"Hello");
});
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1), dispatch_get_main_queue(), testBlock);
dispatch_block_cancel(testBlock);


And Xcode complains:




No matching function for call to 'dispatch_block_create'




I have even tried adding:



#import <dispatch/block.h>






grand-central-dispatch objective-c++






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 2 at 15:52









rmaddy

245k27324388




245k27324388










asked Jan 2 at 14:27









NeeleshNeelesh

1,98384073




1,98384073













  • It is very strange... do you have the latest XCode version installed? Did you check you include UIKit? I tried your code right now and didn't have any build issue (no extra includes required!) Try to make the usual cleanup: delete all derived data and restart xcode.

    – FrizzTheSnail
    Jan 2 at 14:47













  • did you try it on a .mm file? The same works for me on .m file

    – Neelesh
    Jan 2 at 15:14



















  • It is very strange... do you have the latest XCode version installed? Did you check you include UIKit? I tried your code right now and didn't have any build issue (no extra includes required!) Try to make the usual cleanup: delete all derived data and restart xcode.

    – FrizzTheSnail
    Jan 2 at 14:47













  • did you try it on a .mm file? The same works for me on .m file

    – Neelesh
    Jan 2 at 15:14

















It is very strange... do you have the latest XCode version installed? Did you check you include UIKit? I tried your code right now and didn't have any build issue (no extra includes required!) Try to make the usual cleanup: delete all derived data and restart xcode.

– FrizzTheSnail
Jan 2 at 14:47







It is very strange... do you have the latest XCode version installed? Did you check you include UIKit? I tried your code right now and didn't have any build issue (no extra includes required!) Try to make the usual cleanup: delete all derived data and restart xcode.

– FrizzTheSnail
Jan 2 at 14:47















did you try it on a .mm file? The same works for me on .m file

– Neelesh
Jan 2 at 15:14





did you try it on a .mm file? The same works for me on .m file

– Neelesh
Jan 2 at 15:14












1 Answer
1






active

oldest

votes


















1














You left out a crucial part of the compiler error. I get:



foo.mm:6:34: error: no matching function for call to 'dispatch_block_create'
dispatch_block_t testBlock = dispatch_block_create(0, ^{
^~~~~~~~~~~~~~~~~~~~~
/usr/include/dispatch/block.h:171:1: note: candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument
dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
^
1 error generated.


The crucial part is "candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument". It's due to the stricter type checking of (Objective-)C++. You need to explicitly cast 0 to dispatch_block_flags_t:



dispatch_block_t testBlock = dispatch_block_create(static_cast<dispatch_block_flags_t>(0), ^{ ... });





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54008090%2fdispatch-block-create-no-matching-function-for-call-to-dispatch-block-create%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    You left out a crucial part of the compiler error. I get:



    foo.mm:6:34: error: no matching function for call to 'dispatch_block_create'
    dispatch_block_t testBlock = dispatch_block_create(0, ^{
    ^~~~~~~~~~~~~~~~~~~~~
    /usr/include/dispatch/block.h:171:1: note: candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument
    dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
    ^
    1 error generated.


    The crucial part is "candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument". It's due to the stricter type checking of (Objective-)C++. You need to explicitly cast 0 to dispatch_block_flags_t:



    dispatch_block_t testBlock = dispatch_block_create(static_cast<dispatch_block_flags_t>(0), ^{ ... });





    share|improve this answer




























      1














      You left out a crucial part of the compiler error. I get:



      foo.mm:6:34: error: no matching function for call to 'dispatch_block_create'
      dispatch_block_t testBlock = dispatch_block_create(0, ^{
      ^~~~~~~~~~~~~~~~~~~~~
      /usr/include/dispatch/block.h:171:1: note: candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument
      dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
      ^
      1 error generated.


      The crucial part is "candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument". It's due to the stricter type checking of (Objective-)C++. You need to explicitly cast 0 to dispatch_block_flags_t:



      dispatch_block_t testBlock = dispatch_block_create(static_cast<dispatch_block_flags_t>(0), ^{ ... });





      share|improve this answer


























        1












        1








        1







        You left out a crucial part of the compiler error. I get:



        foo.mm:6:34: error: no matching function for call to 'dispatch_block_create'
        dispatch_block_t testBlock = dispatch_block_create(0, ^{
        ^~~~~~~~~~~~~~~~~~~~~
        /usr/include/dispatch/block.h:171:1: note: candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument
        dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
        ^
        1 error generated.


        The crucial part is "candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument". It's due to the stricter type checking of (Objective-)C++. You need to explicitly cast 0 to dispatch_block_flags_t:



        dispatch_block_t testBlock = dispatch_block_create(static_cast<dispatch_block_flags_t>(0), ^{ ... });





        share|improve this answer













        You left out a crucial part of the compiler error. I get:



        foo.mm:6:34: error: no matching function for call to 'dispatch_block_create'
        dispatch_block_t testBlock = dispatch_block_create(0, ^{
        ^~~~~~~~~~~~~~~~~~~~~
        /usr/include/dispatch/block.h:171:1: note: candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument
        dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
        ^
        1 error generated.


        The crucial part is "candidate function not viable: no known conversion from 'int' to 'dispatch_block_flags_t' for 1st argument". It's due to the stricter type checking of (Objective-)C++. You need to explicitly cast 0 to dispatch_block_flags_t:



        dispatch_block_t testBlock = dispatch_block_create(static_cast<dispatch_block_flags_t>(0), ^{ ... });






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 2 at 15:29









        Ken ThomasesKen Thomases

        71.4k671109




        71.4k671109
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54008090%2fdispatch-block-create-no-matching-function-for-call-to-dispatch-block-create%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith