iphone objective-c xcode cocoa-touch

iphone - Xcode 4.6, usado como el nombre del parámetro anterior en lugar de como parte del selector



objective-c cocoa-touch (4)

¿Tal vez te sea más fácil entender si divides esto en varias líneas?

+(NSString*)addFormatPrice:(double)dblPrice :(BOOL)booRemoveCurSymbol; -(void)showHelpChoices:(UIView *)vw :(id)dg;

La estructura de un nombre de método Objective-C es así:

- (returntype)firstPartOfMethodWithParameter:(type)nameOfFirstParameter secondPartOfNameWhichDescribesSecondParameter:(type)nameOfSecondParameter;

Es decir, el nombre completo del método se divide, con los nombres de los parámetros intercalados. Los dos puntos separan cada "etiqueta" de su parámetro; un espacio separa el nombre del parámetro de la siguiente parte del nombre del método.

A sus métodos les faltan las segundas partes, los bits que describen los segundos parámetros. En este momento, los nombres de sus métodos son addFormatPrice:: y showHelpChoices:: , los cuales son legales pero no idiomáticos. Cuando los llames, se verá así:

[Excelsior addFormatPrice:2.0 :YES]; [thumpy showHelpChoices:aView :obj];

lo que debería dejar en claro que sus nombres no son del todo correctos. Solo necesitas agregar las etiquetas para los segundos parámetros:

+(NSString*)addFormatPrice:(double)dblPrice removingCurrencySymbol:(BOOL)booRemoveCurSymbol; -(void)showHelpChoices:(UIView *)vw digeridoo:(id)dg;

Estoy recibiendo la siguiente advertencia de Xcode 4.6.

.. used as the name of the previous parameter rather than as part of the selector

Sé que puedo desactivar esta advertencia, pero prefiero arreglarlo.

Tengo 109 advertencias de este tipo, así que obviamente estoy escribiendo mal los métodos.

Aquí hay un par de mis métodos.

+(NSString*)addFormatPrice:(double)dblPrice:(BOOL)booRemoveCurSymbol; -(void)showHelpChoices:(UIView *)vw:(id)dg;

Entonces, ¿cuál es la forma correcta de escribir estos métodos?


Así es como se supone que debes hacer esto

+(NSString*)addFormatPrice:(double)dblPrice removeCurSymbol:(BOOL)booRemoveCurSymbol; -(void)showHelpChoices:(UIView *)vw whatEverThePurposeOf:(id)dg;

Trate de aprender del código de ejemplo de Apple.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Para empezar, puedes intentar escribir tu método en una oración.

Me gusta esto

applicationdidFinishLaunchingWithOptions

luego, agregue la descripción del nombre con parámetros como la aplicación (UIApplication *)application y (NSDictionary *)launchOptions


Para obtener consejos sobre cómo nombrar los métodos de Objective-C, consulte la guía de estilo de Objective-C, como las pautas de codificación de Apple para Cocoa . Cualquier guía de estilo que siga las convenciones de la comunidad y los marcos de Apple sugerirá que nombre su método de tal manera que el propósito de cada parámetro esté claramente descrito dentro del nombre del método.

+(NSString *)priceStringWithPrice:(double)price removeCurrencySymbol:(BOOL)removeCurrencySymbol -(void)showHelpChoicesInView:(UIView *)view withSomethingWithAnUndecipherableName:(id)mysteryParameter

Observe el cambio significativo en el nombre para indicar qué (supongo) hace en su programa y qué hace cada parámetro. Su método de clase no agrega nada a nada, sino que devuelve una nueva cadena. Esto hace que su código se combine naturalmente con el de otros desarrolladores, los marcos de trabajo de Apple, otras bibliotecas que puede usar y mejora la legibilidad en gran medida. No nombrar sus parámetros degrada la legibilidad y hace que la mantenibilidad sea mucho más difícil.

En una nota relacionada, las abreviaturas innecesarias, incluida la notación húngara, son discordantes y no se ajustan al estilo, y si sigue las buenas prácticas de nomenclatura, no las necesita y producirá un código que es un placer mantener. Así que no lo llames vw , lo llames view o viewToShowIn . No lo llames strVal llamamos strVal o somethingSpecificallyDescribingTheNatureOfTheValueString strVal .


Su primer método es declarar el selector +addFormatPrice:: . Con espacios, parece que

+ (NSString *)addFormatPrice:(double)dblPrice :(BOOL)booRemoveCurSymbol;

Esto se invoca como [NSString addFormatPrice:0.3 :YES] .

Lo que debes hacer es dar un nombre al parámetro anterior, como

+ (NSString *)addFormatPrice:(double)dblPrice removeCurSymbol:(BOOL)booRemoveCurSymbol;

Que luego se [NSString addFormatPrice:0.3 removeCurSymbol:YES] como [NSString addFormatPrice:0.3 removeCurSymbol:YES] .