Невозможно установить свойство NSString в UIViewController

74
3

Я не уверен, что здесь происходит, но я не могу передать строку в представление, которое вызывается на NavigationController.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
InventoryInquiryViewController *listViewController = (InventoryInquiryViewController *)[storyboard instantiateViewControllerWithIdentifier:@"InventoryList"];

[listViewController setItemBalanceRecords: self.itemBalanceRecords]; //this is an NSMutableArray and it works
[listViewController setItemNumber: @"Not Working!"]; //this is an NSString and it remains nil
[self.navigationController pushViewController:listViewController animated:YES];

Таким образом, переход в массив работает так, как ожидалось, пытаясь установить простое свойство строки, терпит неудачу, даже если я укажу строковый литерал. У меня нет идей по этому поводу.

Редактировать:

Я обновил код, чтобы удалить проблему вокруг описания. Код был сокращен, поскольку я пытаюсь установить пару строковых значений. Пересмотренный код по-прежнему демонстрирует то же поведение.

Редактировать:

Они объявлены как свойства:

@property (nonatomic, strong) NSArray *itemBalanceRecords;
@property (nonatomic, strong) NSString *itemNumber;

Приложение предназначено для внутреннего использования предприятия и поддерживает только ios7.

спросил(а) 2021-01-19T21:01:30+03:00 2 месяца, 3 недели назад
1
Решение
75

Попробуйте переименовать свойство из описания в другое. Описание является NSObject свойством (который является классом для UIViewController) и обладающий свойством одного и того же имени может вызвать странное поведение, такое, как вы описываете.

ответил(а) 2021-01-19T21:01:30+03:00 2 месяца, 3 недели назад
61

описание - метод для всех подклассов NSObject, поэтому вы не должны использовать его для своих собственных нужд. https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Protocols/NSObject_Protocol/Reference/NSObject.html #//apple_ref/ОКК /intfm/NSObject/описание

ответил(а) 2021-01-19T21:01:30+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема