อย่างที่คุณเห็นภาพฉันทำ Data Type (วงกลมสีแดง) โดยสิ้นเชิง มีวิธีเปลี่ยน Data Type เป็น Integer หรือไม่?
แก้ไข
ฉันต้องการเปลี่ยนประเภทข้อมูลจาก String เป็น Int และฉันมีข้อมูลอยู่แล้วดังนั้นฉันจึงไม่สามารถเริ่มต้นด้วยขอบเขตใหม่และเปลี่ยนประเภท var ได้
class Item: Object {
@objc dynamic var name: String?
@objc dynamic var itemid: String?
@objc dynamic var cateid: String?
}

ฉันอาจเข้าใจผิดในคำถาม แต่ดูเหมือนว่าคุณจะมีข้อมูลที่มีอยู่จัดเก็บเป็น String และคุณต้องการ 'แปลง' ทั้งหมดเป็น Int
คุณไม่สามารถเปลี่ยนประเภทเป็นประเภทอื่นได้โดยตรงและมีการเปลี่ยนแปลงข้อมูลที่จัดเก็บเช่นกัน หากคุณทำเช่นนั้นจะถูกตั้งค่าสถานะด้วยข้อผิดพลาด
Error!
Migration is required due to the following errors:
- Property 'Item.itemid' has been changed from 'string' to 'int'.
คุณต้องรวมบล็อกการย้ายข้อมูลเพื่อ 'แปลง' ค่าสตริงเป็น Int สมมติว่าเราเพิ่มคุณสมบัติ Int ใหม่ให้กับอ็อบเจ็กต์ `` item_id 'ของเราบางสิ่งบางอย่างตามบรรทัดเหล่านี้จะย้ายสตริงของคุณไปยัง int และในกรณีที่สตริงไม่ถูกต้องมันจะถูกกำหนดค่าเป็น 0
Realm.Configuration.defaultConfiguration = Realm.Configuration(
schemaVersion: 1,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
migration.enumerateObjects(ofType: Item.className()) { oldObject, newObject in
let stringValue = oldObject!["itemid"] as! String
newObject!["item_id"] = Int(stringValue) ?? 0
}
}
})
นอกจากนี้ทันทีที่เข้าถึง Realm โมเดลวัตถุจะถูกเขียนลงในไฟล์ Realm ดังนั้นเรื่องง่ายๆของ
let items = realm.object(Item.self)
จะจัดเก็บโมเดลนั้นแม้ว่าจะไม่เคยเขียนข้อมูลก็ตาม หากหลังจากบรรทัดนั้นประเภท var ถูกเปลี่ยนจาก String เป็น Int จะทำให้เกิดข้อผิดพลาดในการย้ายข้อมูล
การลบอาณาจักรและการเริ่มต้นจากศูนย์เป็นทางเลือกหนึ่งหากเป็นเช่นนั้นและตามที่กล่าวไว้ข้างต้นบล็อกการย้ายข้อมูล
หากเป็นรุ่นใหม่เอี่ยมที่ไม่เคยใช้งานตามความคิดเห็นและคำตอบอื่น ๆ แนะนำเพียงแค่เปลี่ยน String เป็น Int
เพียงแค่เปลี่ยน String เป็น Int ใน Object model ของคุณ โปรดทราบว่าเอกสาร Realm ระบุว่า:
คุณสมบัติ String, NSDate และ NSData สามารถประกาศเป็นทางเลือกหรือไม่ก็ได้โดยใช้ไวยากรณ์ Swift มาตรฐาน
ซึ่งแตกต่างจาก String ในรุ่นก่อนหน้าคุณจะไม่สามารถประกาศ Int ของคุณเป็นทางเลือกได้ คุณมีสองทางเลือก:
ประกาศค่าเริ่มต้น:
class Item: Object {
@objc dynamic var name: String?
@objc dynamic var itemid: Int = 0
@objc dynamic var cateid: Int = 0
}
ประกาศเป็นRealmOptional :
class Item: Object {
@objc dynamic var name: String?
@objc dynamic var itemid = RealmOptional<Int>()
@objc dynamic var cateid = RealmOptional<Int>()
}
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแต่ละโซลูชันโปรดดูคำตอบ SO นี้และเอกสาร Realm
Jana Duggar เปิดใจเกี่ยวกับการค้นหาความรักของเธอ นี่คือทุกสิ่งที่เธอพูดเกี่ยวกับหัวข้อและกรอบเวลา 5 ปีสำหรับการแต่งงาน
เมื่อเร็ว ๆ นี้ แซม ฮิวแฮน นักแสดงจากเรื่อง 'Outlander' ได้เปิดเผยสิ่งที่เขาจะทำจากกองถ่ายเพื่อระลึกถึงเจมี เฟรเซอร์ บทบาทที่ทำให้เขากลายเป็นดารา
'She Loves You' เขียนขึ้นในหนึ่งชั่วโมง บันทึกเสียงในหนึ่งวัน และเป็นเพลงของ The Beatles ที่มีการแสดงที่ดีที่สุดเพลงหนึ่งในอาชีพของพวกเขา
Dolly Parton และคุณย่า Bessie มีความสัมพันธ์พิเศษ คุณยายพาร์ตันป่วยหนัก แต่นั่นไม่ได้ทำให้ดอลลี่หยุดแกล้งเธอ
ต้นกำเนิดของศาสนาอิสลามย้อนกลับไปได้ถึงต้นศตวรรษที่ 7 บนคาบสมุทรอาหรับ ศาสนาอิสลามเริ่มต้นขึ้นในเมืองเมกกะ ที่ซึ่งชายคนหนึ่งชื่อมูฮัมหมัด พ่อค้าผู้ประสบความสำเร็จจากชนเผ่าที่ทรงอำนาจ ได้รับการเปิดเผยจากพระเจ้า
คุณอาจคิดว่าไม้โอ๊คหรือฮิคคอรีเป็นไม้ที่แข็ง แต่เมื่อต้องพูดถึงไม้ที่แข็งที่สุดในโลกแล้ว พวกมันกลับไม่ใกล้เคียงเลย
มหาสมุทรเต็มไปด้วยความงาม แต่ก็ซ่อนสิ่งมีชีวิตใต้ท้องทะเลที่น่ากลัวที่สุดบางชนิดไว้เช่นกัน สัตว์เหล่านี้หลายชนิดซ่อนตัวอยู่ใต้ผิวน้ำอันมืดมิด ในโลกใต้ทะเลลึกอันแสนกดดันและมืดมิด
หากคุณกำลังต่อสู้กับศัตรูหรือกำลังเตรียมตัวสำหรับโหมด PvP การรู้ถึงการเสริมพลังดาบที่ดีที่สุดใน Minecraft จะช่วยให้คุณได้เปรียบอย่างมาก การเสริมพลังดาบจะช่วยให้คุณสร้างความเสียหายได้มากขึ้น เพิ่มจำนวนม็อบที่ดรอป และเพิ่มความทนทานของดาบ
“เด็ก” โผล่รับเชิญดาราดังพร้อมข่าวร้าย
RAV4 นี้อ้างว่าอยู่ในสภาพที่ดีเยี่ยมและมีไว้สำหรับการเล่นเก้าอี้ดนตรี
ภาพจากโดรนจับภาพนักดับเพลิงที่กำลังพยายามดับไฟ
Eyes of Wakanda เชื่อมโยงโดยตรงกับ MCU พร้อมอัปเดตเกี่ยวกับ X-Men '97, What If..., Daredevil และอีกมากมาย
บรรณาธิการบริหารคนเก่าแก่ที่เข้าร่วม American Vogue ในปี 1988 ได้ประกาศข่าวดังกล่าวในการประชุมพนักงานเมื่อเช้าวันพฤหัสบดีที่ 26 มิถุนายน
สมเด็จพระสันตะปาปาฟรานซิส ประมุขแห่งคริสตจักรคาทอลิกและผู้นำชาวคาทอลิกทั่วโลกราว 1.3 พันล้านคน สิ้นพระชนม์แล้ว สิริพระชนมายุ 88 พรรษา
Ava Gardner แต่งงานกับ Mickey Rooney และ Frank Sintra และเธอยังคบหาดูใจกับดาราฮอลลีวูดอีกหลายคน ต่อไปนี้คือประวัติการออกเดทของ Ava Gardner
จอห์น คลีส แต่งงานกับเจนนิเฟอร์ เวด ภรรยาของเขาในปี 2012 นี่คือทุกสิ่งที่คุณต้องรู้เกี่ยวกับเจนนิเฟอร์ เวด ภรรยาของจอห์น คลีส
มันทำให้ฉันประหลาดใจ ทันใดนั้นมันก็เกิดขึ้นบ่อยๆ มันอยู่กลางทางอีกครั้ง <ไม่ ไม่ใช่คนในมหาสมุทรแปซิฟิก คุณเป็นสีน้ำตาลแดง คนที่งานคาร์นิวัล> ทุกพาดหัวข่าวดัง…..
ในปี 2022 ด้วยการเปิดตัว GPT-3 ทักษะการเขียนดูเหมือนจะมีความสำคัญน้อยลง ด้วย AI คนที่เขียนไม่ดีก็สามารถสร้างพนักงานที่มีคุณภาพได้เช่นกัน
ในโลกที่เปลี่ยนแปลงอย่างรวดเร็วและการแข่งขันในปัจจุบัน อาชีพของคนๆ หนึ่งมีบทบาทสำคัญในการเติบโตส่วนบุคคล ความมั่นคงทางการเงิน และความพึงพอใจในชีวิตโดยรวม อย่างไรก็ตาม ผู้คนจำนวนมากพบว่าตัวเองติดอยู่ในวงจรของความเมื่อยล้าและความไม่พอใจอย่างไม่หยุดยั้ง ค่อยๆ สูญเสียชีวิตการทำงานไป
เมื่อสัปดาห์ที่แล้วฉันสังเกตเห็นข่าวประชาสัมพันธ์ที่เผยแพร่ผ่าน PressGazette (เว็บไซต์ข่าวของสื่ออังกฤษ) บทความประกาศว่า Acast ซึ่งเป็นบริษัทโฮสติ้งและโฆษณาพอดคาสต์ของ Scandi จะเป็นผู้นำกลุ่มผู้เผยแพร่ "อาจมีอิทธิพลมากที่สุด" ในพอดคาสต์