2016-02-23 2 views
7

मैं एक अजीब बात पर ठोकर खाई जब मेरे क्षेत्र से एक वस्तु लाने का प्रयास मुद्रण (आईओएस, स्विफ्ट, क्षेत्र संस्करण 0.98.2)क्षेत्र वस्तु संपत्ति अपने मूल्य याद करते हैं, लेकिन मैं इसे देख सकते हैं जब पूरी वस्तु

print("speaker:") 
print(RealmProvider.appRealm.objects(FavoriteSpeaker).first!) 

सही ढंग से कंसोल में मेरी वस्तु उदासीनता:

print("speaker name:") 
print(RealmProvider.appRealm.objects(FavoriteSpeaker).first!.name) 
:

speaker: 
FavoriteSpeaker { 
    name = Ashley Nelson-Hornstein; 
} 

लेकिन जब मैं name संपत्ति के मूल्य प्राप्त करने की कोशिश

मैं कोई रिक्त स्ट्रिंग

speaker name: 

चार लाइनें अपने मॉडल के init विधि में एक साथ हैं पाने


अद्यतन 1: मैं एक जवाब पता चलता है कि यह है कि आप केवल नहीं दिख पाया कंसोल में मुद्रित होने पर मान: Realm object is missing all properties except primaryKey लेकिन मैंने एक चेतावनी दृश्य के माध्यम से name संपत्ति को प्रदर्शित करने का भी प्रयास किया और यह भी खाली है।


अद्यतन 2: बस यह सुनिश्चित करें कि सब कुछ क्रमिक रूप से होता है और एक ही धागे पर मैं ऐसा किया बनाने के लिए:

let favorite1 = FavoriteSpeaker() 
favorite1.name = "Debbie Downer" 

try! RealmProvider.appRealm.write { 
    RealmProvider.appRealm.deleteAll() 
    RealmProvider.appRealm.add(favorite1) 
} 

print("speaker:") 
print(RealmProvider.appRealm.objects(FavoriteSpeaker.self).first!) 

print("speaker name:") 
print(RealmProvider.appRealm.objects(FavoriteSpeaker.self).first!.name) 

लेकिन परिणाम एक ही है - name प्रिंट एक खाली स्ट्रिंग

मुद्रण

उत्तर

21

name संपत्ति शायद dynamic के रूप में घोषित नहीं की गई है, जिससे यह nil मूल्य को ऑब्जेक्ट पर संग्रहीत मूल्य को पढ़ता है बल्कि था एन दायरे से डेटा पढ़ना।

+0

वास्तव में यह मुद्दा था, धन्यवाद! यह मुझे सोचता है हालांकि - स्टार्टअप पर इसे जांचने के लिए दायरे का एक तरीका होना चाहिए, स्विफ्ट के पास कुछ प्रकार का निम्न आत्मनिरीक्षण कौशल है ... –

+0

हमने गैर-गतिशील गुणों की जांच करने का कोई तरीका खोजने का प्रयास किया है, लेकिन यह ऐसा संभव प्रतीत नहीं होता है क्योंकि यह सीधे खुलासा नहीं होता है और मिरर वास्तव में संपत्ति का उपयोग करने के समान चीजों को नहीं पढ़ता है। –

+0

यह एक दयालु है क्योंकि इस मुद्दे को फिर से दिखने की गारंटी होगी। मेरी सभी वस्तुओं में उनकी गुण गतिशील थी लेकिन यह विशेष वस्तु थी क्योंकि मैंने इसे अंतिम और जल्दी में जोड़ने का फैसला किया और इसे गतिशील के रूप में चिह्नित करने के लिए चूक गया ... –

संबंधित मुद्दे