Почему return return не останавливает программу?

Поэтому у меня есть функция, которая проверяет, просматривает ли пользователь свой профиль или нет. и вот моя функция.

func isUserViewCurrentUser() -> Bool { guard let user = userDataDelegate?.userData() else { return false } if user == Current.user { print("returning false: USER IS CURRENT USER") return false } else { print("returning true: USER IS NOT CURRENT USER") return true } } 

Тогда я буду запускать только свою функцию в представлении, код должен остановиться после того, как я что-то напечатаю:

 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) if isUserViewCurrentUser() == true { self.navigationItem.rightBarButtonItem = nil self.navigationItem.leftBarButtonItem = nil return } else { return } if let userID = userDataDelegate?.userData().userID { retrieveFollowerNumbers(userIdentifier: userID) return } } 

Но моя консоль печатала «возвращающ истину: ПОЛЬЗОВАТЕЛЬ НЕ ТОЛЬКО ПОЛЬЗОВАТЕЛЯ» для тысячи раз и никогда не останавливает. Я везде искал свой код, который никогда не запускал isUserViewCurrentUser() в цикле for или любом цикле.

Это моя userData:

 protocol SendUserDataDelegate { func userData() -> User } 

didSelect TableViewCell:

 if let user = filteredUsers?[indexPath.row] { userToPass = user profileController?.userDataDelegate = self self.navigationController?.pushViewController(profileController!, animated: true) } 

И этот код на моем cellRowAtIndexPath:

 if isUserViewCurrentUser() == true { cell.bioAndFollowStackView.addSubview(cell.followButtonOutlet) } else { if cell.followButtonOutlet != nil { cell.followButtonOutlet.removeFromSuperview() } } 

отправка пользовательского объекта, когда пользователь вставляет ячейку таблицы в другой viewController. и я вызываю его всякий раз, когда хочу получить ссылку на объект пользователя

Лично я вижу, что у вас есть 2 объекта с разными ссылками, и вы проверяете, равны ли они … даже если данные внутри одинаковы, фактические ссылки не являются.

Если это так, вы можете проверить их на что-то уникальное, как id.

if user.id == Current.user.id {}

Я не знаю, чего вы пытаетесь достичь, но по моему личному мнению (без обид) есть что-то вонючее … :). Вы можете думать о лучшем решении.

Надеюсь, это поможет, желаю вам всего наилучшего.

В viewWillAppear вы вызываете isUserViewCurrentUser() , который вызывает userDataDelegate.userData() . Вы не опубликовали то, что userData() , но я готов поспорить, что это снова заставляет ваше представление появляться снова или снова вызывает isUserViewCurrentUser() .

В любом случае, пожалуйста, напишите userData() код …

  • Как правильно отклонить UINavigationController, который представлен как модальный?
  • SpriteKit: как вызвать функцию в SKAction.sequence?
  • Создание PDF из Image iOS
  • iOS: использование Facebook и Google, вход в Google Plus
  • Как отключить ведение журнала?
  • AdReward от AdColony не работает на Swift 2.0 по какой-либо причине
  • Невозможно выбрать порядок кнопок в UIAlertController
  • Нечувствительность к регистру Сравнение с основными данными и скоростью
  • Как получить высоту topLayoutGuide?
  • Swift SpriteKit edgeLoopFromRect Issue
  • Расширение не может загрузить NSLocalizedString (быстрый)
  • Interesting Posts

    Добавьте ограничения на кнопку в быстром (учебное пособие по iOS для Apple)

    Пользовательский переход UIViewController?

    Xcode autocomplete, чтобы показать предложение, когда «Содержит», а не «Начать с»,

    Версия CLGeocoder Swift 2

    SLComposeViewController не будет устанавливать initialText для SLServiceTypeFacebook

    UITextField getFirstResponder случайно отключает приложение iOS

    Получение странного сообщения отладчика: Assertion failed: (cls), function getName: что это?

    Как токенизировать строку с запятыми и разделителем строк

    Как правильно преобразовать заголовок Last-Modified из ответа HTTP на NSDate на iOS

    Проблема с прозрачностью при преобразовании UIView в UIImage

    Доля в покупке приложений между приложениями Mac и iOS

    Поиск из NSArray с использованием Predicate

    Разница между загрузкой многостраничной формы и NSURLSession.uploadTaskWithRequest

    Аутентификация AFNetworking 3.0 и SSL с помощью setSessionDidReceiveAuthenticationChallengeBlock

    Как распознать событие touch при анимации UIButton

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