У меня есть проблема, что я надеюсь, что вы можете мне помочь. У меня есть приложение с несколькими видами раскадровки, каждый из которых имеет отдельный диспетчер представлений. Я хочу иметь возможность использовать свой собственный класс во всех представлениях в раскадровке. Это сделает код в каждом viewcontroller более чистым, и все приложение будет легче отлаживать и т. Д. Класс будет содержать переменные и методы.Создание экземпляра класса в IOS 6
Общая цель для меня - собрать данные от пользователя с помощью кнопок, а затем сохранить их в базе данных. Можно будет просматривать и корректировать данные, а также создавать статистические данные.
Поскольку большинство переменных и методов будут использоваться в разных представлениях и в разное время, я хотел бы отделить их все в отдельных файлах.
Я также могу сказать вам, что это не ленивая попытка короткого сокращения от меня, я много путешествовал по интернету, много часов читал сотни сообщений и т. Д., И я все еще не нашел решения.
Любой вход очень оценен!
Спасибо за ваше время, чтобы прочитать это ...
SomeClass.h имеет следующий код:
#import <Foundation/Foundation.h>
@interface SomeClass : NSObject
{
NSString *dataOne;
NSString *dataTwo;
NSString *dataThree;
}
- (void) SetDataOne: (NSString*) dataOneReceived;
- (void) SetDataTwo: (NSString*) dataTwoReceived;
- (void) SetDataThree: (NSString*) dataThreeReceived;
- (void) saveSomeData;
@end
SomeClass.m имеет следующий код:
#import "SomeClass.h"
@implementation SomeClass
- (void) SetDataOne: (NSString*) dataOneReceived {
dataOne = dataOneReceived;
}
- (void) SetDataTwo: (NSString*) dataTwoReceived {
dataTwo = dataTwoReceived;
}
- (void) SetDataThree: (NSString*) dataThreeReceived {
dataThree = dataThreeReceived;
}
- (void) saveSomeData {
// Here I do stuff with dataOne etc…
}
@end
У SomeView.h есть следующее Код:
#import <UIKit/UIKit.h>
#import "HeadViewController.h"
#import "SomeClass.h"
@interface SomeView : UIViewController
// contains stuff not needed to show here
- (IBAction)Done:(id)sender;
@end
SomeView.m имеет следующий код:
#import "SomeView.h"
#import "SomeClass.h"
@interface SomeView()
@end
@implementation SomeView
- (void)viewDidLoad
{
[super viewDidLoad];
SomeClass *someClassObject = [[SomeClass alloc] init];
// Do any additional setup after loading the view.
}
// Other standard methods omitted
- (IBAction)Done:(id)sender {
[someClassObject SetDataOne: @”whatever text”];
[someClassObject SetDataTwo: @”whatever text”];
[someClassObject SetDataThree: @”whatever text”];
[someClassObject SaveSomeData];
Error Msg for all the above: ”Use of Undeclared Identifier ’someClassObject’
}
@end
Комментарий: Вы можете увидеть сообщение об ошибке я получаю в конце кода выше. Я понятия не имею, что я делаю неправильно. Я рассмотрел множество примеров того, как создавать классы и вызывать их, но не может показаться чем-то, что решает мою проблему. Кроме того, я вижу, что некоторые из них помещают «SomeClass * someClassObject = [[SomeClass alloc] init];» в «файл main.m». Если я правильно понял, этот файл загружается первым при запуске приложения. Если это так, то я не могу разместить его там, поскольку мне придется создавать экземпляры моего класса в нескольких разных представлениях и в другое время, чем при запуске приложения. Вот почему я поместил его в метод viewDidLoad.
«этот файл является первым, который загружается при запуске приложения» - я предлагаю вам вернуться на один шаг и научиться хорошо, прежде чем пытаться погрузиться в развитие iOS. Файлы не загружаются, а функции вызываются, 'main()' является первым для этого. –
Уточните свой вопрос и удалите ненужные фрагменты кода. В его нынешнем виде это вопрос, ведущий в никуда. – allprog
Думаю, вам нужно найти несколько хороших книг по программированию. «Серфинг в Интернете в течение нескольких часов» - это не способ научиться программированию. –