In Objective-C, è meglio pratica:Dichiarare le proprietà nell'interfaccia .h o in un'estensione nel file .m?
Declare oggetti quali pulsanti nella .h e poi sintetizzare nel .m
.h @interface SomeViewController : UIViewController @property (strong, nonatomic) UIButton *someButton; @end .m @implementation SomeViewController @synthesize someButton = _someButton; @end
o dichiarano come ivars in il .m
@interface SomeViewController() @property (strong, nonatomic) UIButton *someButton; @end
ho notato che in un sacco di codice di Apple, in particolare thei r Codice di esempio breadcrumb, molte delle loro proprietà sono dichiarate nell'interfaccia. C'è una differenza tra i due? Ho anche notato che quando le proprietà sono dichiarate nello @interface
, vengono automaticamente sintetizzate con un prefisso di sottolineatura, rendendo inutile la sintesi someButton = _someButton
.
Entrambe le dichiarazioni sono dichiarazioni di proprietà. L'ivar è creato da '@ synthesize'. Funzionano in modo identico; la differenza è la loro visibilità su altri file. –