Доступ к быстрому свойству от objC

- (void) tapGesture: (id)sender { UITapGestureRecognizer *gesture = (UITapGestureRecognizer *) sender; NSInteger userID = gesture.view.tag; UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; OthersProfile *vc = (OthersProfile*)[storyboard instantiateViewControllerWithIdentifier:@"othersprofile"]; NSString *strUserID = [NSString stringWithFormat:@"%ld", (long)userID]; vc.userID = strUserID; [self.viewController.navigationController pushViewController:vc animated:YES]; } 

Он использовался для работы с Xcode 8 / Swift 3, но похоже, что есть проблема с Xcode 9 и быстрым 4.

У меня есть свойство userID не найдена ошибка.

В файле Swift:

 var userID : String = "" override func viewDidLoad() { print(userID) //no value here } 

Кто-нибудь с какой-либо идеей?

Попробуйте это вместо этого:

 @objc var userID : String = " 

Правила для показа кода Swift для Objective-C изменились в Swift 4. Таким образом, ваш код был в порядке в Swift 3 и, следовательно, возникла путаница;)

Новый дизайн полностью детализирован в соответствующем предложении Swift Evolution .

Обращайтесь к своему другому вопросу, вы должны исправить, как вы обращаетесь к контроллеру:

Это связано с тем, что vc.user равен нулю, когда вы пытаетесь установить его, добавьте переменную в быстрый контроллер и установите вместо vcsuser.text

 vc.yourVariable = strUserID; [self.viewController.navigationController pushViewController:vc animated:YES]; 

то в viewDidAppear вы сможете установить его с помощью этой переменной

  @IBOutlet var user: UILabel! public var yourVariable: String = "" override func viewDidLoad() { user.text = yourVariable print(user.text!) //should be value } 
  • iOS 11 EXC_BAD_ACCESS KERN_INVALID_ADDRESS на dealloc
  • iOS: использование Swift 4 при настройке iOS 9
  • Объявления из расширений нельзя переопределить в Swift 4
  • Swift 4 - OpenCV 3.2 на Xcode 9.0 beta 2
  • Как правильно использовать селектор в swift 4
  • ReplayKit: startRecording () обработчик завершения никогда не вводится
  • Является ли абсолютно правильным, что nil'ing Firebase DatabaseReference НЕ останавливает наблюдение?
  • Как построить проект Swift 3 на Xcode 9?
  • Swift 4 Использование KVO для прослушивания изменений громкости
  • Как назначить возвращаемое значение встроенной функции внутри try catch?
  • Почему XCUITest не работает на Xcode под управлением iOS 11.0.1
  • Interesting Posts

    как посмотреть запись в iphone (NSLog) после перезапуска приложения?

    Файл File.upload ActionScript не работает в Air SDK для устройств iOS

    ipad / iphone css переход с jquery не работает

    Поведение CGAffineTransformMakeScale с CGREct и с UIView

    Ошибка титанового CLI в создании приложения-магазина

    iOS: Приложения должны следовать за хранилищем данных iOS?

    Скрыть строку состояния при запуске изображения

    Невозможно назначить внешние тестеры новой сборке после истечения срока действия предыдущего

    Портал разработчика Apple Developer может дольше генерировать новый идентификатор семян Bundle

    Приложение IOS 11 Files: как включить файлы из набора приложений

    Навигационная панель show / hide

    Использование iOS 5 Twitter API для отправки частного сообщения?

    iOS 8 UIActivity: отключить отдельных сторонних сторонников?

    IOS Запуск пользовательского сценария оболочки «Встраивать фреймворк» не найдена ошибка

    Проблема UITextfield с представлением UIPicker

    Давайте будем гением компьютера.