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

            146k13157175




            146k13157175













            • 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







                    Popular posts from this blog

                    Florida Star v. B. J. F.

                    Danny Elfman

                    Lugert, Oklahoma