Как установить NSString в классе из поля uitext с помощью viewcontroller - PullRequest
0 голосов
/ 09 июня 2011

Я пытаюсь установить NSString * receiveCodeText;Это в объекте со значением uitextfiled, которое в моем viewcontroller из моего viewcontroller внутри tableView: didSelectRowAtIndexPath: однако я получаю ошибку

/ Users / imac / Documents / Iphone Applications / tables / Classes / RootViewController.m: 198: 0 / Пользователи / imac / Документы / Приложения для Iphone / таблицы / Классы / RootViewController.m: 198: ошибка: доступ к неизвестному 'setReceiveCodeText:' метод класса

/ Пользователи / imac / Documents / Iphoneприложения / таблицы / классы / RootViewController.m: 198: 0 / пользователи / imac / документы / приложения для Iphone / таблицы / классы / RootViewController.m: 198: ошибка: объект не может быть установлен - либо свойство только для чтения, либо не найден установщик

вот мой код и как я пытаюсь передать текст.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    searchTableViewController *searchTable = [[searchTableViewController alloc] initWithNibName:@"searchTableViewController" bundle:nil];

    switch (indexPath.row) {
        case 1: {
            searchTable.editedFieldName = @"Make";
            //Pass code number over to DBAccess class
            DBAccess.receiveCodeText = self.codeText.text;
        } break;
        case 2: {
            searchTable.editedFieldName = @"Model";
        } break;
        case 3: {
            searchTable.editedFieldName = @"Year";
        } break;
    }

    [self.navigationController pushViewController:searchTable animated:YES];
    [searchTable release];
}

1 Ответ

0 голосов
/ 09 июня 2011

DBAccess это класс.Если setRecieveCodeText: не является методом класса, вы не можете использовать его напрямую.Свойства принадлежат экземпляру, а не классу, поэтому вам придется объявлять методы класса и использовать для этого статическую переменную.Однако имеет смысл создать экземпляр, а затем использовать этот объект или даже синглтон, если вы хотите избежать нескольких экземпляров одного и того же класса.Синглтон должен быть доступен для использования в разных классах.

Я включил код, связанный с подходом метода класса.

@interface DBAccess: NSObject {
}

+ (NSString *)receiveCodeText;
+ (void)setReceiveCodeText:(NSString *)code;
[..]
@end

В файле .m,

static NSString * receiveCodeText;

@implementation DBAccess
[..]
+ (NSString *)receiveCodeText {
    return receiveCodeText;
}

+ (void)setReceiveCodeText:(NSString *)code {
    [receiveCodeText autorelease];
    receiveCodeText = [code copy];
}
[..]
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...