آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سوال درمورد نحوه قرار دادن سرچ باکس در لیست ویو پروژه نوت آنلاین.

alfredo  9 سال پیش  9 سال پیش
0 0

سلام استاد.

در پروژه نوت که اطلاعات رو توسط json دریافت میکردید. اگه بخوایم در tableview یک سرچ بار قرار بدیم چطور باید از اطلاعات موجود در tableview استفاده کنیم ؟

چون من آموزش های توی سایت های خارجی رو نگاه کردم دیدم اکثرا اطلاعات رو توسط یک آرایه به tableview میدند و از همون آرایه برای فیلتر کردن مورد سرچ شده استفاده میکنند. ولی ما اینجا با json اطلاعات رو دریافت میکنیم. البته میشه در حلقه ای که اطلاعات append میشوند در لیست ویو همزمان در یک آرایه هم قرارشون داد ولی آیا راه درستش این هست؟ آیا میشه اطلاعات داخل tableview را مستقیما فیلتر کرد؟

لطفا در این خصوص بنده رو راهنمایی فرمایید.

با تشکر.

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
کاشی زاده  9 سال پیش
+1 0

سلام ،
یک EditText بالای صفحه قرار بدید و طبق آموزش ها هر زمان که کارکتری در آن وارد شدن دستوری را به جهت سرچ در آرایه ایجاد شده از جیسون بدهید .

0 0
خیلی متشکر. جسارتا کدوم قسمت هارو نگاه کنم؟ (9 سال پیش)
+1 0
خاطرم نیست یا در بخش اتصال کنترل ها به کد گفتم یا در جای دیگه (9 سال پیش)
0 0
پیدا کردم. داخل آموزش آرایه ها بود. موفق شدم سرچش رو راه بندازم ولی دوتا مشکل دارم. یکی اینکه حتما باید عبارت کامل نوشته بشه تا سرچ کار کنه . من میخواستم اگه بشه حرف به حرف کار کنه تا کاربر مجبور نباشه زیاد و با دقت تایپ کنه... یکی دیگه هم اینکه میتونم نتیجه سرچ رو پرینت بگیرم ولی هرکار میکنم نمیتونم بیارمش داخل تیبل ویو. (9 سال پیش)
+1 0
از این روش پیش برید تا به صورت حرف به حرف بتونید سرچ کنید : لینک ، بعد از اینکه سیستم تشخیص داد کدوم آیتم های آرایه انتخاب شده میتونید بقیه رو حذف کنید و یا بهتر یک آرایه جدا برای سرچ قرار بدید . (9 سال پیش)
0 0
متشکرم استاد. درست شد. حالا فقط مونده لود کردنش داخل لیست ویو. اینجاش رو باید چکار کنم !؟ باید همینجا یک متد cellForRowAt indexPath جدید درست کنم یا داخل cellForRowAt indexPath قبلی یک شرط قرار بدم و reload data کنم ؟ اگه امکان داره راهنمایی کنید لطفا. (9 سال پیش)
+1 0
شما یک آرایه جدید بسازید داده های Filter شده رو بریزید توش مثل آموزش لیست علاقمندی ، بعد لیست رو بدید به TableView و در نهایت reloadData بزنید. (9 سال پیش)
+1 0
استاد یه جوری گره خوردم تو خودم که کلا از زندگی نا امید شدم‌! (9 سال پیش)
پاسخ به سوال 
alfredo  9 سال پیش
0 0

استاد آرایه ای که من جیسون رو داخلش میریزم به این صورته :

var newEntryDictionary = [String:String]()
 
 

که به این صورت اطلاعات رو در حلقه for record in records داخلش میریزم:

 note.intime = record["time"] as! String?  //  اینجا مستقیم در تیبل ویو نمایش داده میشه
 self.newEntryDictionary["time"] = record["time"] as? String //  اینجا داخل آرایه ریخته میشه
 
 

 

ولی متوجه شدم که جی سون من  مدلش با این نوع آرایه فرق میکنه و باعث میشه که در این آرایه فقط آخرین خانه از جدول ذخیره بشه.

جدولی که من در دیتابیس آنلاین دارم و با جیسون دریافتش میکنم به این صورت هست:

 []JSON
{}0
- id: 1
- name:"Ali"
- city:"tehran"
.
.
- time:"33225052016"
{}1
{}2
...
 
 

خوب حالا اگر اطلاعات رو داخل اون نوع آرایه بریزم فقط بلاک۲ داخل آرایه قرار میگیره‌!

الآن من از چه نوع  دیکنشری باید استفاده کنم که بتونم درست این اطلاعات رو داخلش قرار بدم و با دستوران فیلتر کردن متن هم سازگاری داشته باشه ؟

چون تا اینجایی که من متوجه شدم برای فیلتر کردن یک متن باید حتما جنسش استرینگ باشه یا آرایه ساده ای از استرینگ ها باشه.

اگه اشتباه نکنم اینها مدلهای مختلف دیکشنری هستند:

var emptyDict = [String: String]()
var emptyDict = Dictionary<String, String>()
var emptyDict: [String: String] = [:]
var emptyDict: [String: String] = [String: String]()
var emptyDict: [String: String] = Dictionary<String, String>()
var emptyDict: Dictionary = [String: String]()
var emptyDict: Dictionary = Dictionary<String, String>()
var emptyDict: Dictionary<String, String> = [:]
var emptyDict: Dictionary<String, String> = [String: String]()
var emptyDict: Dictionary<String, String> = Dictionary<String, String>()

حالا از کدام یک از اینها باید استفاده کنم؟

پاسخ به سوال 
کاشی زاده  9 سال پیش
+1 0

شما جیسونی دارید شما یک آرایه از اشیا ، مانند آموزش ها JSON را با استفاده از NSDictionary دریافت کنید .
Dictionary در Swift به شکل Generic است . لیستی که در بالا قرار دادید انواعی از Dictionary ها نیست ، بلکه روش های مختلفی برای ایجاد یک Dictionary است.

1- پس از NSDictionary استفاده کنید تا همه آیتم ها را شامل شود و مشکلی پیش نیاید.
2- در بخش جستجو شما بر روی آیتمی از شی مورد نظر سرچ را انجام میدهید که از جنس استرینگ باشد ، به نظرم مشکل شما در روش جستجو است .

پاسخ به سوال 
alfredo  9 سال پیش
0 0

  1. هرچی سرچ و جستجو میکنم به جایی نمیرسم. خیلی گیج کننده شده. از آموزش هم چیزی دستگیرم نمیشه. آخه شما در آموزش اطلاعات رو داخل جدول نمایش میدید فقط. من هم تا همینجاش رو با آموزش جلو آمدم ولی چطور اطلاعات رو داخل دیکشنری یا آرایه ای از آرایه ها بریزم !؟

 

علی ایو حال راه دیگه ای به ذهنم خطور کرد که قبل از لود کردن اطلاعات در تیبلویو اونها رو فیلتر کنم. یعنی توی حلقه ای که میخواد اطلاعات جی سون رو در تیبل ویو قرار بده بگم مثلا اگر اطلاعات با سرچ برابر بود مقدارش رو در تیبل ویو وارد کن. و خداروشکر درست شد بالاخره ولی اونطوری که سرچ درست کار کنه بهتر بود. بهرحال ممنون. 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .