2016-03-21 16 views
0
Ben

diğer Swift sınıfa

Class2.swift benim Class1.swift bir işlevi erişmeye çalışıyorum

bir işlevi çağırmak İşte Class1.swift benim işlevi var:

class ExampleFormViewController: FormViewController { 
...... 
    required init(coder aDecoder: NSCoder) { 
      super.init(coder: aDecoder) 
      load_data() 
      self.loadForm() 
     } 
    func get_facility(company: Int!, territory: Int!){ 

    } 
    } 

Ve burada aramak nasıl benim Class2.swift içinde:

ExampleFormViewController().get_facility(ExampleFormViewController().val_company[row], territory: ExampleFormViewController().val_territory[row]) 

bu sıraya gir hatadır: Missing argument for parameter 'coder' in call

+0

Sen görünümü denetleyicileri oluşturmak gerekmez:sınıfa ilişkin init yöntem bu mesajınızı değiştirdiğinizde sonra theCoder adlı bir değişkene koymak parameter.You bir NSCoder geçmek için gereken bir kodlayıcı gerektirir sinek böyle. Muhtemelen Class2 de bir VC'dir. Bu iki VC nedir ve nasıl ilişkilidir? Class2'de bu kod nerede (örn. PrepareForSegue?) – Michael

+0

'genel sınıf FormPickerCell: FormValueCell, UIPickerViewDelegate, UIPickerViewDataSource {' Özel bir denetçi sınıfı ve Görünüm Denetçisi değil –

+0

Bu yüzden 'ExampleFormViewController' geçerli VC olduğunu tahmin ediyorum ve özel bir seçici görüntülüyorsunuz. Seçicinin, bu yöntemi çağırmak için VC'ye bir başvurusu olması gerekir veya yöntem, herhangi bir örnek değişkenine gerek duymazsa statik olabilir. – Michael

cevap

0
ExampleFormViewController().get_facility(ExampleFormViewController(theCoder).val_company[row], territory: ExampleFormViewController(theCoder).val_territory[row]) 
+0

Kodu nasıl bildiririm? –

+0

Kodlayıcıyı kullanmayı düşünmüyorsanız, büyük olasılıkla, init yöntemini bir kodlayıcı ile parametre olarak kullanmamalısınız, 'init gerekli init() {'ve ilk satırı' super.init() 'yaparsınız. NSCoder'ı hiçbir şey için kullanmıyor musunuz? – wottle

+0

Kullanmakta olduğum bir Libary tarafından gereklidir. –