2015-06-23 10 views
6

में एक से अधिक बार लिंक किया जा रहा है मेरे पास दो लक्ष्य app और appTests हैं। इसके अलावा मेरे पास कक्षा Wine और फ्रेमवर्क Realm और 'RealmSwift' है जो उन दो लक्ष्यों से जुड़े हुए हैं। जब कोई ट्रैग app में कक्षा Wine का उपयोग करता है तो कोई अपवाद नहीं है।कक्षा

लेकिन जब मैं

appTests.swift तरह परीक्षण चलाना चाहते हैं (22 लाइनें)

import UIKit 
import XCTest 
import RealmSwift 

class appTests: XCTestCase { 
func testRealmAdd() { 
     NSFileManager.defaultManager().removeItemAtPath(Realm.defaultPath, error: nil) 
     let realm = Realm() 
     let wine = Wine() // when error occure 
     wine.photo = "photo" 
     wine.desc = "description" 
     wine.raiting = 3.0 

     realm.write {() -> Void in 
      realm.add(wine) 
     } 

     let result = realm.objects(Wine) 
     print("\(result)") 
     XCTAssertTrue(result.count == 1, "There should be one element") 
    } 
} 

Wine.swift (10 लाइनें)

import UIKit 
import RealmSwift 

class Wine: Object { 

    dynamic var desc: String = "" 
    dynamic var photo: String = "" 
    dynamic var raiting: Double = 0 

} 

फिर एक appTests.swift

में लाइन 8 पर अपवाद दिखाई देता है

उसी नाम के साथ RLMObject उप-वर्गों को एक ही लक्ष्य में दो बार शामिल नहीं किया जा सकता है। कृपया सुनिश्चित करें कि 'शराब' केवल आपके वर्तमान लक्ष्य में एक बार जुड़ा हुआ है।

मैंने पहले ही डेरिवेटडेटा और प्रोजेक्ट को स्पष्ट किया है। क्या आप सुझाव दे सकते हैं कि मुझे कहां देखना चाहिए? nhgrif टिप्पणी के बाद

संपादित

ठीक है ऐसा लगता है कि एक अपवाद पहले बढ़ रहा है लाइन 7. कौन अब nhgrif करने के लिए कोड धन्यवाद में चिह्नित है में,।

+0

कौन सी लाइन लाइन 8 है? इसकी संभावना स्रोत कोड के साथ कुछ भी नहीं है, बल्कि इसके बजाय आप परियोजनाओं के ढांचे को कैसे जोड़ रहे हैं। – nhgrif

+0

@nhgrif मैं ट्यूटोरियल जैसे उन ढांचे को जोड़ता हूं, https://realm.io/docs/swift/latest/#getting-started, और फिर मैंने 'Realm.framework', 'RealmSwift.framework' और' Wine.swift' को चिह्नित किया ** लक्ष्य सदस्यता ** –

उत्तर

1

Wine.swift केवल app में होना चाहिए, और appTests नहीं होना चाहिए। appTests में दोनों परिणामों में इसे Wine (app.Wine और appTests.Wine) नामक दो कक्षाएं शामिल हैं, जो कि वास्तविकता का समर्थन नहीं करता है। Winepublic (या स्विफ्ट 2.0, @Testable में) है, तो आप इसे appTests से appTests लक्ष्य में शामिल किए बिना एक्सेस कर सकते हैं क्योंकि appTestsapp में लिंक शामिल हैं।

+0

में लक्ष्य 'ऐपटेस्ट्स' के लिए चेक के रूप में भी मुझे प्रत्येक func और संपत्ति को सार्वजनिक करना होगा जिसका प्रयोग परीक्षण में किया जाएगा। मुझे 'आयात ऐप' जोड़ने के लिए और क्या करना है। मैं स्विफ्ट 2.0 के लिए इंतजार नहीं कर सकता :) –