Search from Array with custom fields Swift










0















I have an arrays



var searchArray = [(
ean: String,
name: String,
weight: String,
brand: String,
percent: String,
inside: String,
img: String,
packet: String,
date: String)
]()

var searchArrayFiltered = [(
ean: String,
name: String,
weight: String,
brand: String,
percent: String,
inside: String,
img: String,
packet: String,
date: String)
]()


I have a code for search from arrays and show result in table:



func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter((dataString: String) -> Bool in
return dataString.(of: searchText, options: .caseInsensitive) != nil
)

tableView.reloadData()



But in line return dataString.String(of: searchText, options: .caseInsensitive) != nil i have an error:




Value of tuple type '(ean: String, name: String, weight: String,
brand: String, percent: String, inside: String, img: String, packet:
String, date: String)' has no member 'String'




If I change dataString.String to dataString.name, I have an error:




Cannot call value of non-function type 'String'




Please help me to do search from searchArray for "name".










share|improve this question


























    0















    I have an arrays



    var searchArray = [(
    ean: String,
    name: String,
    weight: String,
    brand: String,
    percent: String,
    inside: String,
    img: String,
    packet: String,
    date: String)
    ]()

    var searchArrayFiltered = [(
    ean: String,
    name: String,
    weight: String,
    brand: String,
    percent: String,
    inside: String,
    img: String,
    packet: String,
    date: String)
    ]()


    I have a code for search from arrays and show result in table:



    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
    searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter((dataString: String) -> Bool in
    return dataString.(of: searchText, options: .caseInsensitive) != nil
    )

    tableView.reloadData()



    But in line return dataString.String(of: searchText, options: .caseInsensitive) != nil i have an error:




    Value of tuple type '(ean: String, name: String, weight: String,
    brand: String, percent: String, inside: String, img: String, packet:
    String, date: String)' has no member 'String'




    If I change dataString.String to dataString.name, I have an error:




    Cannot call value of non-function type 'String'




    Please help me to do search from searchArray for "name".










    share|improve this question
























      0












      0








      0








      I have an arrays



      var searchArray = [(
      ean: String,
      name: String,
      weight: String,
      brand: String,
      percent: String,
      inside: String,
      img: String,
      packet: String,
      date: String)
      ]()

      var searchArrayFiltered = [(
      ean: String,
      name: String,
      weight: String,
      brand: String,
      percent: String,
      inside: String,
      img: String,
      packet: String,
      date: String)
      ]()


      I have a code for search from arrays and show result in table:



      func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
      searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter((dataString: String) -> Bool in
      return dataString.(of: searchText, options: .caseInsensitive) != nil
      )

      tableView.reloadData()



      But in line return dataString.String(of: searchText, options: .caseInsensitive) != nil i have an error:




      Value of tuple type '(ean: String, name: String, weight: String,
      brand: String, percent: String, inside: String, img: String, packet:
      String, date: String)' has no member 'String'




      If I change dataString.String to dataString.name, I have an error:




      Cannot call value of non-function type 'String'




      Please help me to do search from searchArray for "name".










      share|improve this question














      I have an arrays



      var searchArray = [(
      ean: String,
      name: String,
      weight: String,
      brand: String,
      percent: String,
      inside: String,
      img: String,
      packet: String,
      date: String)
      ]()

      var searchArrayFiltered = [(
      ean: String,
      name: String,
      weight: String,
      brand: String,
      percent: String,
      inside: String,
      img: String,
      packet: String,
      date: String)
      ]()


      I have a code for search from arrays and show result in table:



      func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
      searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter((dataString: String) -> Bool in
      return dataString.(of: searchText, options: .caseInsensitive) != nil
      )

      tableView.reloadData()



      But in line return dataString.String(of: searchText, options: .caseInsensitive) != nil i have an error:




      Value of tuple type '(ean: String, name: String, weight: String,
      brand: String, percent: String, inside: String, img: String, packet:
      String, date: String)' has no member 'String'




      If I change dataString.String to dataString.name, I have an error:




      Cannot call value of non-function type 'String'




      Please help me to do search from searchArray for "name".







      ios arrays swift search






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 11:16









      Артем ИльинскийАртем Ильинский

      889




      889






















          2 Answers
          2






          active

          oldest

          votes


















          3














          First of all you are discouraged from using a tuple as array type. Use a custom struct or class



          Apple says:




          Tuples are useful for temporary groups of related values. They’re not suited to the creation of complex data structures. If your data structure is likely to persist beyond a temporary scope, model it as a class or structure, rather than as a tuple.





          There are two major issues:



          1. Copy&Paste mistake, you mean dataString.range(of...


          2. dataString is not a string, it's a tuple (the type annotation is redundant)

          Change the function to



          func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
          searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter(tuple -> Bool in
          return tuple.name.range(of: searchText, options: .caseInsensitive) != nil
          )

          tableView.reloadData()






          share|improve this answer























          • Thank you very much. I'm always working with javaandroid, and swift for me is Hell.

            – Артем Ильинский
            Nov 13 '18 at 11:39


















          0














          create a struct for



          struct Model 
          var ean: String
          var name: String
          var weight: String
          var brand: String
          var percent: String
          var inside: String
          var img: String
          var packet: String
          var date: String



          then apply filter on your [Model]






          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%2f53279825%2fsearch-from-array-with-custom-fields-swift%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            First of all you are discouraged from using a tuple as array type. Use a custom struct or class



            Apple says:




            Tuples are useful for temporary groups of related values. They’re not suited to the creation of complex data structures. If your data structure is likely to persist beyond a temporary scope, model it as a class or structure, rather than as a tuple.





            There are two major issues:



            1. Copy&Paste mistake, you mean dataString.range(of...


            2. dataString is not a string, it's a tuple (the type annotation is redundant)

            Change the function to



            func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
            searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter(tuple -> Bool in
            return tuple.name.range(of: searchText, options: .caseInsensitive) != nil
            )

            tableView.reloadData()






            share|improve this answer























            • Thank you very much. I'm always working with javaandroid, and swift for me is Hell.

              – Артем Ильинский
              Nov 13 '18 at 11:39















            3














            First of all you are discouraged from using a tuple as array type. Use a custom struct or class



            Apple says:




            Tuples are useful for temporary groups of related values. They’re not suited to the creation of complex data structures. If your data structure is likely to persist beyond a temporary scope, model it as a class or structure, rather than as a tuple.





            There are two major issues:



            1. Copy&Paste mistake, you mean dataString.range(of...


            2. dataString is not a string, it's a tuple (the type annotation is redundant)

            Change the function to



            func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
            searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter(tuple -> Bool in
            return tuple.name.range(of: searchText, options: .caseInsensitive) != nil
            )

            tableView.reloadData()






            share|improve this answer























            • Thank you very much. I'm always working with javaandroid, and swift for me is Hell.

              – Артем Ильинский
              Nov 13 '18 at 11:39













            3












            3








            3







            First of all you are discouraged from using a tuple as array type. Use a custom struct or class



            Apple says:




            Tuples are useful for temporary groups of related values. They’re not suited to the creation of complex data structures. If your data structure is likely to persist beyond a temporary scope, model it as a class or structure, rather than as a tuple.





            There are two major issues:



            1. Copy&Paste mistake, you mean dataString.range(of...


            2. dataString is not a string, it's a tuple (the type annotation is redundant)

            Change the function to



            func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
            searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter(tuple -> Bool in
            return tuple.name.range(of: searchText, options: .caseInsensitive) != nil
            )

            tableView.reloadData()






            share|improve this answer













            First of all you are discouraged from using a tuple as array type. Use a custom struct or class



            Apple says:




            Tuples are useful for temporary groups of related values. They’re not suited to the creation of complex data structures. If your data structure is likely to persist beyond a temporary scope, model it as a class or structure, rather than as a tuple.





            There are two major issues:



            1. Copy&Paste mistake, you mean dataString.range(of...


            2. dataString is not a string, it's a tuple (the type annotation is redundant)

            Change the function to



            func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 
            searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter(tuple -> Bool in
            return tuple.name.range(of: searchText, options: .caseInsensitive) != nil
            )

            tableView.reloadData()







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 13 '18 at 11:27









            vadianvadian

            145k13157174




            145k13157174












            • Thank you very much. I'm always working with javaandroid, and swift for me is Hell.

              – Артем Ильинский
              Nov 13 '18 at 11:39

















            • Thank you very much. I'm always working with javaandroid, and swift for me is Hell.

              – Артем Ильинский
              Nov 13 '18 at 11:39
















            Thank you very much. I'm always working with javaandroid, and swift for me is Hell.

            – Артем Ильинский
            Nov 13 '18 at 11:39





            Thank you very much. I'm always working with javaandroid, and swift for me is Hell.

            – Артем Ильинский
            Nov 13 '18 at 11:39













            0














            create a struct for



            struct Model 
            var ean: String
            var name: String
            var weight: String
            var brand: String
            var percent: String
            var inside: String
            var img: String
            var packet: String
            var date: String



            then apply filter on your [Model]






            share|improve this answer



























              0














              create a struct for



              struct Model 
              var ean: String
              var name: String
              var weight: String
              var brand: String
              var percent: String
              var inside: String
              var img: String
              var packet: String
              var date: String



              then apply filter on your [Model]






              share|improve this answer

























                0












                0








                0







                create a struct for



                struct Model 
                var ean: String
                var name: String
                var weight: String
                var brand: String
                var percent: String
                var inside: String
                var img: String
                var packet: String
                var date: String



                then apply filter on your [Model]






                share|improve this answer













                create a struct for



                struct Model 
                var ean: String
                var name: String
                var weight: String
                var brand: String
                var percent: String
                var inside: String
                var img: String
                var packet: String
                var date: String



                then apply filter on your [Model]







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 13 '18 at 11:31









                Viren MalhanViren Malhan

                755




                755



























                    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%2f53279825%2fsearch-from-array-with-custom-fields-swift%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







                    這個網誌中的熱門文章

                    What does pagestruct do in Eviews?

                    Dutch intervention in Lombok and Karangasem

                    Channel Islands