Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
871 kez görüntülendi
ios development kategorisinde tarafından

Merhabalar herkese,

Üniversiteler hakkında kücük bir uygulama üzerinde çalısıyorum. Universitelere ait bilgileri sqlite veri tabanindan alip table view'a aktariyorum. Üniversitelerim isimlerini search bar ile aratmak da istiyorum. Asagida verdigim linkteki tutorial'i uygulayarak search bar yapisini kurdum ancak elle girilen bir dizinin elemanlarinda sorunsuz bir sekilde arama yapabilirken; veri tabanindan gelen ve bir dizi icerisine alip table view'da listeleyebildigim verilerin arasinda arama yapamiyorum. asagidaki hatayi aliyorum. 

universite bilgilerini bir struct yapisinin icine aliyorum bu bilgileride bir array'e atayip bu array'deki "adi" elemanini table view'deki label'a yazdiriyorum.

tutorial

hata:

https://drive.google.com/open?id=0B-mxXNuEWybRYVlISmxfOS01eEk

 

1 cevap

0 oy
tarafından

Bu struct yapısı olarak saklaman ile alakalı bir sorun var gibi duruyor ama bende tam olarak anlayamadım. Eğer projeni veya ilgili kodun bir kısmını drive da paylaşırsan yardımcı olmaya çalışırız.

İyi çalışmalar.

tarafından
https://drive.google.com/open?id=0B-mxXNuEWybRTG16MW1WZWlxZ0k

hocam uygulamanin en baslangic hali bu. MNM_db islemlerinde sqp islemlerini view contoller'da listeleme ve bu veriler icerisinde arama yapmak istiyorum.

    func updateSearchResultsForSearchController(searchController: UISearchController) {
        
        self.filteredUnivercity.removeAll(keepCapacity: false)
        
        let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
        let array = (self.tableData as NSArray).filteredArrayUsingPredicate(searchPredicate)
        self.filteredAppleProducts = array as! [String]
        
        self.myTableView.reloadData()

        
        
    }

" let array = (self.tableData as NSArray).filteredArrayUsingPredicate(searchPredicate)"
satiri hata veriyor  arrayi stringe atamak gibi denemeler yaptim hata ortadan kalsada search bar'da arama yapmak istedigimde uygulama cakildi bu seferde.
tarafından
Şuanda müsait olamadığım için detaylı bir çözüm veremiyorum ama temel sorunun zaten (self.tableData as NSArray) satırının işlevsiz olması bu işlem çalışsa bile oluşan array aramanın yapılcağı value den oluşmadığı için struct array içindeki struct içinde filteredArrayUsingPredicate le arama yapmaya çalışıyorsun buda olumlu sonuç vermiyor.

Bunun yerine bu işlemleri yapmadan önce string tipinde bir array oluşturup struc içinden parse etceğin üni adlarını buraya ekle daha sonra oluştuduğun bu array içinde arama yap.  Hatta sting bir array olduğu için, filterContentForSearchText fonksiyonu ile aramayı yapman daha iyi olacaktır.

Aşağıdaki örnek işini görücektir,
https://www.raywenderlich.com/113772/uisearchcontroller-tutorial

Söylediğim gibi temel sorunun arama yapacağın value nun struct içinde ilgili fonsiyonun ulaşamadığı bir yerde olması. Arama yapadan önce bu yapıyı parse edip sadeleştirmelisin.
...