Я пытаюсь создать глобальную функцию или метод в объективе C. Это значит, что я могу назвать это с любого из моих контроллеров.Метод не найден в ObjectiveC
Я уже проверил это сообщение: How to create global functions in Objective-C
Так что я был в Xcode 6 я создал новый файл и выбрать категорию выпадающая. который создал эти два файла * .h & * .m для меня. Я добавил свой метод, называемый SaveWeatherDataNow в нем
//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
Теперь в моем другом контроллере представления, если я называю этот метод, то компилятор не находит его вообще. Что я упустил?
// v1CitiesAdd.m
#import "NSObject+SaveWeatherData.h"
@implementation v1CitiesAdd
...
...
-(IBAction) doneAction
{
...
[SaveWeatherData SaveWeatherDataNow:XML]; // Complier Error: Use of undeclared identifier SaveWeatherData
'[NSObject SaveWeatherDataNow: XML];' должен работать. – brigadir
Это было сделано. Я чувствую себя таким глупым. Можете ли вы также рассказать мне, в чем разница между + (void) и - (void) ...некоторые уроки имеют + другие - перед методами. –
Если у вас есть только один объект, все будет хорошо. Если у вас разные объекты, вам нужно переключить его на - (void), чтобы он использовал данные внутреннего класса. –