J'essaie de créer une fonction globale ou une méthode dans objectiveC. C'est ainsi que je peux l'appeler de n'importe lequel de mes contrôleurs de vue.Méthode introuvable dans ObjectiveC
je l'ai déjà vérifié ce post: How to create global functions in Objective-C
Alors ce que je faisais était dans Xcode 6 J'ai créé nouveau fichier et choisissez une catégorie déroulant. qui a créé ces deux fichiers * .h & * .m pour moi. J'ai ajouté ma méthode appelée SaveWeatherDataNow en elle
//NSObject+SaveWeatherData.h
#import <Foundation/Foundation.h>
@interface NSObject (SaveWeatherData)
+(void)SaveWeatherDataNow:(NSString *)XML;
@end
//NSObject+SaveWeatherData.m
#import "NSObject+SaveWeatherData.h"
@implementation NSObject (SaveWeatherData)
+(void)SaveWeatherDataNow:(NSString *)XML
{
NSLog(@"SaveWeatherDataNow XML lenght: %ld", [XML length]);
}
@end
Maintenant, dans mon autre contrôleur de vue si j'appelle cette méthode alors complier ne trouve pas du tout. Qu'est-ce que j'ai raté?
// v1CitiesAdd.m
#import "NSObject+SaveWeatherData.h"
@implementation v1CitiesAdd
...
...
-(IBAction) doneAction
{
...
[SaveWeatherData SaveWeatherDataNow:XML]; // Complier Error: Use of undeclared identifier SaveWeatherData
'[NSObject SaveWeatherDataNow: XML];' devrait fonctionner. – brigadir
C'est ce qu'il a fait. Je me sens si bête. Pouvez-vous également me dire quelle est la différence entre + (vide) et - (vide) ...certains tutoriels ont + d'autres ont - en face des méthodes. –
Si vous avez un seul objet, ça ira. Si vous avez des objets différents, vous devrez passer à - (void) pour utiliser les données de la classe interne. –