Quando è necessario l'attributo del registro in app Xamarin.ios?
-
20-12-2019 - |
Domanda
Quando è esattamente l'attributo Register
richiesto in un app Xamarin.ios?
Ho trovato un post esistente che dà qualche spiegazione di ciò che fa, ma io "m non chiaro quando è necessario.
Ho scritto un'app piuttosto ampia senza essere costretta a utilizzare Register
su una qualsiasi delle mie sottoclassi UIViewController
o UIView
.
Nel mio caso, sto facendo tutto il mio layout dal codice C #, quindi non si trova alcun file xib
.Sembra uno dei casi di utilizzo per Register
è interagire con le viste create in Interface Builder.
Qualcuno può far luce su questo?
Soluzione
In qualsiasi momento Objectivec Runtime ha bisogno di creare un'istanza del tipo gestito, dovrà essere registrata.Se crei le viste personalizzate e i controller dal codice non hai molto, se ne è necessario utilizzarlo.Se si prevede di creare qualsiasi controllo dell'interfaccia utente riutilizzabile, è necessario registrarli in modo che qualcuno utilizzando gli editor di layout possa usarli.Diciamo di creare un UIView personalizzato chiamato myview e registrarlo, è possibile trascinare un controllo UIView in un controller di visualizzazione in XCode e modificarne il tipo su MyView invece di UIView.Non renderà ancora in Editor Xcode, ma verrà creato come myview in fase di esecuzione, altrimenti verrebbe creata come UIView.
Altri suggerimenti
Qualsiasi oggetto che deriva da Nsobject verrà automaticamente esportato in Obiettivo-C, tecnicamente non è necessaria l'attributo [Register].
Tuttavia l'attributo è utile quando si desidera che il nome dell'obiettivo-c sia diverso dal valore predefinito:
[Register ("MyObject")]
class MyCustomObject : NSObject
{
}
.
Ciò registrerebbe il tipo MyCustomObject
gestito con Objective-C usando MyObject
come nome nativo.