Xcode-IFELSE Оператор IFELSE в prepareForSegue заменяет данные в блоке IF данными из блока ELSE.

Это очень длинный метод, и я немного запутался, пытаясь его вырезать, поэтому StackOverflow позволяет мне публиковать так много.

Метод подготовки ForSegue StatsViewController:

`-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { //данные stat1... COMPLETE if ([segue.identifier isEqualToString:@"stat1Seg"]) {

    CiteViewController *citeScreen = [segue destinationViewController];

    citeScreen.citeWhichStat = @"1";

    if ([statWhichTopic isEqualToString:@"abortion"]) {
        citeScreen.strMLA = @"Mantel, Barbara. \"Abortion.\" CQ Researcher 19 May 2015. Web. 4 Mar. 2016.";
        citeScreen.strAPA = @"Mantel, B. (2015, May 19). Abortion. CQ Researcher. Retrieved from http://library.cqpress.com.ezaccess.libraries.psu.edu/";

        citeScreen.citeWhichTopic = @"abortion";
    }
    else if ([statWhichTopic isEqualToString:@"agriculture"]) {
        citeScreen.strMLA = @"\"Nitrogen.\" CropNutrition.com. The Mosaic Company, 2013. Web. 30 Apr. 2016.";
        citeScreen.strAPA = @"CropNutrition.com. (2013). Nitrogen. Retrieved April 30, 2016, from http://www.cropnutrition.com/efu-nitrogen#overview";

        citeScreen.citeWhichTopic = @"agriculture";
    }
    else if ([statWhichTopic isEqualToString:@"climateChange"]) {
        citeScreen.strMLA = @"\"Causes of Climate Change.\" EPA: United States Environmental Protection Agency, 23 Feb. 2016. Web. 12 Apr. 2016.";
        citeScreen.strAPA = @"EPA. (2016, February 23). Causes of Climate Change. Retrieved April 12, 2016, from https://www3.epa.gov/climatechange/science/causes.html";

        citeScreen.citeWhichTopic = @"climateChange";
    }
    else if ([statWhichTopic isEqualToString:@"cybersecurity"]) {
        citeScreen.strMLA = @"\"Top Cybersecurity Statistics for 2016 - Cyber Security Marketing Blog.\" Cyber Security Marketing Blog. Penguin Strategies, 17 Jan. 2016. Web. 16 Apr. 2016.";
        citeScreen.strAPA = @"Penguin Strategies. (2016, January 17). Top Cybersecurity Statistics for 2016 - Cyber Security Marketing Blog. Retrieved April 16, 2016, from http://www.marketingcybersecurity.com/2016-cybersecurity-statistics/";

        citeScreen.citeWhichTopic = @"cybersecurity";
    }
    else if ([statWhichTopic isEqualToString:@"discrimination"]) {
        citeScreen.strMLA = @"Logan, John R. \"Separate and Unequal: The Neighborhood Gap for Blacks, Hispanics and Asians in Metropolitan America.\" (n.d.): n. pag. Report0727. US2010: Discover America in a New Century, July 2011. Web. 22 Apr. 2016.";
        citeScreen.strAPA = @"Logan, J. R. (2011, July). Separate and Unequal: The Neighborhood Gap for Blacks, Hispanics and Asians in Metropolitan America. Retrieved April 22, 2016, from http://www.s4.brown.edu/us2010/Data/Report/report0727.pdf";

        citeScreen.citeWhichTopic = @"discrimination";
    }
    else if ([statWhichTopic isEqualToString:@"education"]) {
        citeScreen.strMLA = @"\"Fast Facts- Career and Technical Education.\" National Center for Education Statistics. U.S. Department of Education, Institute of Education Sciences, n.d. Web. 27 Apr. 2016.";
        citeScreen.strAPA = @"National Center for Education Statistics. (n.d.). Fast Facts- Career and technical education. Retrieved April 27, 2016, from https://nces.ed.gov/fastfacts/display.asp?id=43";

        citeScreen.citeWhichTopic = @"education";
    }
    else if ([statWhichTopic isEqualToString:@"energy"]) {
        citeScreen.strMLA = @"\"India's Crude Oil Imports Rose 7% in 2015-16 as Consumption Grew by 11%.\"Enerdata. Enerdata, 22 Apr. 2016. Web. 29 Apr. 2016.";
        citeScreen.strAPA = @"Enerdata. (2016, April 22). India's crude oil imports rose 7% in 2015-16 as consumption grew by 11%. Retrieved April 29, 2016, from http://www.enerdata.net/enerdatauk/press-and-publication/energy-news-001/indias-crude-oil-imports-rose-7-2015-16-consumption-grew-11_36906.html";

        citeScreen.citeWhichTopic = @"energy";
    }
    else if ([statWhichTopic isEqualToString:@"gunControl"]) {
        citeScreen.strMLA = @"Fingerhut, Hannah. \"5 Facts about Guns in the United States.\" Pew Research Center- Fact Tank: News in the Numbers. Pew Research Center, 05 Jan. 2016. Web. 28 Apr. 2016.";
        citeScreen.strAPA = @"Fingerhut, H. (2016, January 05). 5 facts about guns in the United States. Retrieved April 28, 2016, from http://www.pewresearch.org/fact-tank/2016/01/05/5-facts-about-guns-in-the-united-states/";

        citeScreen.citeWhichTopic = @"gunControl";
    }
    else if ([statWhichTopic isEqualToString:@"internet"]) {
        citeScreen.strMLA = @"\"Internet Live Stats - Internet Usage & Social Media Statistics.\" Internet Live Stats - Internet Usage & Social Media Statistics. InternetLiveStats.com, n.d. Web. 21 Apr. 2016.";
        citeScreen.strAPA = @"InternetLiveStats.com. (n.d.). Internet Live Stats - Internet Usage & Social Media Statistics. Retrieved April 21, 2016, from http://www.internetlivestats.com/";

        citeScreen.citeWhichTopic = @"internet";
    }
    else if ([statWhichTopic isEqualToString:@"marijuana"]) {
        citeScreen.strMLA = @"\"Marijuana Stats.\" Caron. Caron Treatment Centers, 2016. Web. 30 Apr. 2016.";
        citeScreen.strAPA = @"Caron Treatment Centers. (2016). Marijuana Stats. Retrieved April 30, 2016, from http://www.caron.org/understanding-addiction/statistics-outcomes/marijuana-stats";

        citeScreen.citeWhichTopic = @"marijuana";
    }
    else if ([statWhichTopic isEqualToString:@"overpopulation"]) {
        citeScreen.strMLA = @"Hetzel, Lisa, and Annetta Smith. \"65 Years and Over Population: 2001.\" Google Books. Diane Publish Co., 2008. Web. 10 Apr. 2016.";
        citeScreen.strAPA = @"Hetzel, L., & Smith, A. (2008). 65 Years and Over Population: 2001. Retrieved April 10, 2016, from https://books.google.com/books?id=Gndl_pIhnZkC";

        citeScreen.citeWhichTopic = @"overpopulation";
    }
    else if ([statWhichTopic isEqualToString:@"police"]) {
        citeScreen.strMLA = @"USA.gov. \"Uniform Crime Reports- Detailed Assault Data.\" FBI- The Federal Bureau of Investigation. U.S. Government, U.S. Department of Justice, 2014. Web. 29 Apr. 2016.";
        citeScreen.strAPA = @"FBI. (2014). Uniform Crime Reports- Detailed Assault Data. Retrieved April 29, 2016, from https://www.fbi.gov/about-us/cjis/ucr/leoka/2014/detailed-assault-topic-page-summaries";

        citeScreen.citeWhichTopic = @"police";
    }
    else if ([statWhichTopic isEqualToString:@"pornography"]) {
        citeScreen.strMLA = @"\"Pornhub’s 2015 Year in Review.\" Pornhub Insights. Pornhub, 2016. Web. 19 Apr. 2016.";
        citeScreen.strAPA = @"\"Pornhub’s 2015 Year in Review.\" Pornhub Insights. Pornhub, 2016. Web. 19 Apr. 2016.";

        citeScreen.citeWhichTopic = @"pornography";
    }
    else if ([statWhichTopic isEqualToString:@"prison"]) {
        citeScreen.strMLA = @"Savage, Charlie. \"Justice Dept. Seeks to Curtail Stiff Drug Sentences.\" The New York Times. The New York Times, 11 Aug. 2013. Web. 20 Apr. 2016.";
        citeScreen.strAPA = @"Savage, C. (2013). Justice Dept. Seeks to Curtail Stiff Drug Sentences. Retrieved April 20, 2016, from http://www.nytimes.com/2013/08/12/us/justice-dept-seeks-to-curtail-stiff-drug-sentences.html?pagewanted=all";

        citeScreen.citeWhichTopic = @"prison";
    }
    else if ([statWhichTopic isEqualToString:@"rape"]) {
        citeScreen.strMLA = @"\"Facts & Quotes: Statistics.\" Rape Treatment Center | Santa Monica | UCLA Medical Center. Rape Treatment Center, n.d. Web. 18 Apr. 2016.";
        citeScreen.strAPA = @"Rape Treatment Center. (n.d.). Facts & Quotes: Statistics. Retrieved April 18, 2016, from http://www.911rape.org/facts-quotes/statistics";

        citeScreen.citeWhichTopic = @"rape";
    }
    else if ([statWhichTopic isEqualToString:@"religion"]) {
        citeScreen.strMLA = @"\"The Global Religious Landscape.\" Pew Research Center- Religion Public Life. Pew Research Center, 18 Dec. 2012. Web. 29 Apr. 2016.";
        citeScreen.strAPA = @"Pew Research Center. (2012, December 18). The Global Religious Landscape. Retrieved April 29, 2016, from http://www.pewforum.org/2012/12/18/global-religious-landscape-exec/";

        citeScreen.citeWhichTopic = @"religion";
    }
    else if ([statWhichTopic isEqualToString:@"robotics"]) {
        citeScreen.strMLA = @"\"Industrial Robot Statistics.\" Statistics- IFR International Federation of Robotics. IFR, 2015. Web. 26 Apr. 2016.";
        citeScreen.strAPA = @"IFR- International Federation of Robotics. (2015). Industrial Robot Statistics. Retrieved April 26, 2016, from http://www.ifr.org/industrial-robots/statistics/";

        citeScreen.citeWhichTopic = @"robotics";
    }
    else if ([statWhichTopic isEqualToString:@"socialMedia"]) {
        citeScreen.strMLA = @"Baer, Jay. \"11 Shocking New Social Media Statistics in America.\" Convince & Convert. Convince & Convert, LLC, 2008-2016. Web. 27 Apr. 2016.";
        citeScreen.strAPA = @"Baer, J. (2008-2016). 11 Shocking New Social Media Statistics in America. Retrieved April 27, 2016, from http://www.convinceandconvert.com/social-media-research/11-shocking-new-social-media-statistics-in-america/";

        citeScreen.citeWhichTopic = @"socialMedia";
    }
    else if ([statWhichTopic isEqualToString:@"sexuality"]) {
        citeScreen.strMLA = @"\"FAQ: Facts and Statistics.\" The Kinsey Institute - Sexuality Information Links - FAQ [Related Resources]. The Kinsey Institute/ Indiana University, 1996-2016. Web. 21 Apr. 2016.";
        citeScreen.strAPA = @"The Kinsey Institute/ Indiana University. (1996-2016). The Kinsey Institute - Sexuality Information Links - FAQ [Related Resources]. Retrieved April 21, 2016, from http://www.kinseyinstitute.org/resources/FAQ.html#resources";

        citeScreen.citeWhichTopic = @"sexuality";
    }
    else {
        citeScreen.strMLA = @"\"Falcon Heavy.\" SpaceX. Space Exploration Technologies Corp., 2016. Web. 26 Apr. 2016.";
        citeScreen.strAPA = @"Space Exploration Technologies Corp. (2016). Falcon Heavy. Retrieved April 26, 2016, from http://www.spacex.com/falcon-heavy";

        citeScreen.citeWhichTopic = @"spaceExploration";
    }
}

    else if ([statWhichTopic isEqualToString:@"religion"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"religion";
    }
    else if ([statWhichTopic isEqualToString:@"robotics"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"robotics";
    }
    else if ([statWhichTopic isEqualToString:@"socialMedia"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"socialMedia";
    }
    else if ([statWhichTopic isEqualToString:@"sexuality"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"sexuality";
    }
    else {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"spaceExploration";
    }
}
//stat8 data... COMPLETE
else {

    CiteViewController *citeScreen = [segue destinationViewController];

    citeScreen.citeWhichStat = @"8";

    if ([statWhichTopic isEqualToString:@"abortion"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"abortion";
    }
    else if ([statWhichTopic isEqualToString:@"agriculture"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"agriculture";
    }
    else if ([statWhichTopic isEqualToString:@"climateChange"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"climateChange";
    }
    else if ([statWhichTopic isEqualToString:@"cybersecurity"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"cybersecurity";
    }
    else if ([statWhichTopic isEqualToString:@"discrimination"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"discrimination";
    }
    else if ([statWhichTopic isEqualToString:@"education"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"education";
    }
    else if ([statWhichTopic isEqualToString:@"energy"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"energy";
    }
    else if ([statWhichTopic isEqualToString:@"gunControl"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"gunControl";
    }
    else if ([statWhichTopic isEqualToString:@"internet"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"internet";
    }
    else if ([statWhichTopic isEqualToString:@"marijuana"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"marijuana";
    }
    else if ([statWhichTopic isEqualToString:@"overpopulation"]) {
        citeScreen.strMLA = @"Stancheva, Tina. \"Human Nature, Technology & the Environment.\" Human Nature, Technology & the Environment. 2003. Web. 10 Apr. 2016.";
        citeScreen.strAPA = @"Stancheva, T. (2003). Human Nature, Technology & the Environment. Retrieved April 10, 2016, from http://fubini.swarthmore.edu/~ENVS2/S2003/Tina/overpopulation";

        citeScreen.citeWhichTopic = @"overpopulation";
    }
    else if ([statWhichTopic isEqualToString:@"police"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"police";
    }
    else if ([statWhichTopic isEqualToString:@"pornography"]) {
        citeScreen.strMLA = @"\"Pornhub’s 2015 Year in Review.\" Pornhub Insights. Pornhub, 2016. Web. 19 Apr. 2016.";
        citeScreen.strAPA = @"\"Pornhub’s 2015 Year in Review.\" Pornhub Insights. Pornhub, 2016. Web. 19 Apr. 2016.";

        citeScreen.citeWhichTopic = @"pornography";
    }
    else if ([statWhichTopic isEqualToString:@"prison"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"prison";
    }
    else if ([statWhichTopic isEqualToString:@"rape"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"rape";
    }
    else if ([statWhichTopic isEqualToString:@"religion"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"religion";
    }
    else if ([statWhichTopic isEqualToString:@"robotics"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"robotics";
    }
    else if ([statWhichTopic isEqualToString:@"socialMedia"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"socialMedia";
    }
    else if ([statWhichTopic isEqualToString:@"sexuality"]) {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"sexuality";
    }
    else {
        citeScreen.strMLA = @"";
        citeScreen.strAPA = @"";

        citeScreen.citeWhichTopic = @"spaceExploration";
    }
}

} `


person user3884788    schedule 02.07.2016    source источник
comment
Поскольку кибербезопасность — это ваш случай, когда вы не получите подходящее имя перехода, вы получите кибербезопасность. Внимательно проверьте имена переходов, установите точку останова в prepareForSegue и пройдитесь, чтобы увидеть, какие значения у вас есть на самом деле.   -  person Paulw11    schedule 02.07.2016
comment
Я трижды проверил свои идентификаторы перехода и ничего не поймал. Моя точка останова помещает ошибку сразу после строки -(void) prepareForSegue..., где я вызываю метод. Меня это смущает, что я должен из этого предположить?   -  person user3884788    schedule 03.07.2016
comment
Точка останова не должна вызывать ошибку. Это должно остановить ваше приложение, чтобы вы могли проверять переменные в отладчике и шаг за шагом. Даже печать вашего идентификатора перехода может помочь, если вы не можете понять отладчик   -  person Paulw11    schedule 03.07.2016
comment
Ах, правда, я перепутал терминологию; никаких ошибок, просто есть метка Thread 1: breakpoint 1.1, как и должно быть. Мой отладчик читает self, sender и segue с разными объектами, перечисленными под каждой стрелкой вниз. Точка останова всегда появляется в строке под -(void) prepareForSegue... Что касается печати моего идентификатора: NSLog даже не появляются, как будто метод prepareForSegue даже не вызывается.   -  person user3884788    schedule 03.07.2016
comment
Это означает, что вы не в отладчике. Вы можете использовать кнопки для пошагового просмотра и просмотра ваших переменных в левом представлении. Отладчик — очень мощный инструмент. Вы должны научиться использовать его   -  person Paulw11    schedule 03.07.2016
comment
Я устанавливаю точки останова в своем коде и запускаю их с помощью элементов управления в левом нижнем углу экрана. Проблемы возникают при вызове prepareForSegue. Я не понимаю, что вы имеете в виду под левым взглядом. Как в левом меню навигатора?   -  person user3884788    schedule 03.07.2016
comment
Окно с sender self и т.д. это ваши переменные. Вы можете проверить их значения, если вы развернете треугольник рядом с собой, вы увидите, например, все свойства ваших объектов. Вы должны искать в Google, как использовать отладчик Xcode. На одном шаге вы можете увидеть значение segue,identifier и путь, по которому наше выполнение проходит через функцию.   -  person Paulw11    schedule 03.07.2016
comment
Я изучил отладчик Xcode и щелкнул потоки слева и объекты под кодом, но я просто не знаю, что из этого вынести.   -  person user3884788    schedule 03.07.2016
comment
Вам нужно использовать кнопку перехода, чтобы перейти к следующей строке и посмотреть, как ваше приложение выполняется строка за строкой.   -  person Paulw11    schedule 03.07.2016
comment
@Paulw11 Paulw11 Я сделал шаг вперед. Я могу сказать, что проблема возникает, как только переход в действие. Но я не знаю, как поступить.   -  person user3884788    schedule 03.07.2016
comment
Посмотрите на segue.identifier; почему он не соответствует ни одному из ваших утверждений if   -  person Paulw11    schedule 03.07.2016
comment
Segue.identifier @abortSeg совпадает с темой Abortion   -  person user3884788    schedule 03.07.2016
comment
Что соответствует фактическому идентификатору перехода к аборту, установленному в построителе интерфейсов вручную.   -  person user3884788    schedule 03.07.2016
comment
Затем он вводит оператор if, связанный с этой строкой? установите точку останова в строке, где вы устанавливаете тему кибербезопасности, и посмотрите, когда она будет достигнута.   -  person Paulw11    schedule 03.07.2016
comment
Я пропустил о в названии перехода. Я чувствую себя таким глупым. установка точки останова на последней теме поймала ее на первую.   -  person user3884788    schedule 03.07.2016


Ответы (1)


Оператор if не может «сохранять данные» из оператора else. Это просто означает, что условие в операторе if не выполняется, поэтому оно по умолчанию. Я бы порекомендовал проверить ваше правописание на идентификаторах перехода. Те, что в вашем коде, должны точно соответствовать вашей раскадровке. Это действительно единственное, что я могу придумать, если все остальные работают, кроме статистики абортов. Если это не сработает, попробуйте добавить несколько операторов NSLog для печати идентификатора перехода и посмотрите, почему он не равен «abortSeg».

Что касается вашего второго вопроса, я не совсем понимаю, о чем вы спрашиваете. Ваше приложение падает, когда вы выталкиваете контроллер представления из стека навигации? Мне нужно увидеть код, чтобы понять, что происходит не так.

person Samuel Noyes    schedule 02.07.2016
comment
Я просмотрел свои идентификаторы перехода еще до того, как задал этот вопрос, и еще пару раз. Даже мои NSLogs ничего не показывают, как будто prepareForSegue вообще не вызывается. - person user3884788; 03.07.2016
comment
Итак, вы добавили NSLog за пределами операторов if, а prepareForSegue никогда не вызывается? Вы уверены, что класс View Controller установлен в TopicsViewController в файле раскадровки? @user3884788 - person Samuel Noyes; 03.07.2016
comment
Да, я добавил это вне операторов if и внутри них. На самом деле он установлен на TopicsViewController. Пытаюсь работать с точками останова, но не нахожу там ничего полезного. Кстати, спасибо за помощь. - person user3884788; 03.07.2016
comment
Без проблем, рад помочь! Мне интересно, как статистика может быть настроена на кибербезопасность, если prepareForSegue никогда не вызывалась? Я думаю, что для этого нужно вызвать prepareForSegue, и я не могу представить, почему бы этого не сделать. Кроме того, вы сказали, что в одном из ваших комментариев выше была вызвана точка останова внутри prepareForSegue. Я иду на риск, возможно, вы установили идентификатор КОНТРОЛЛЕРА ПРЕДСТАВЛЕНИЯ на abortSeg вместо идентификатора самого SEGUE? Если нет, мне действительно нужно увидеть больше кода, чтобы понять проблему. - person Samuel Noyes; 03.07.2016
comment
Я пропустил о в идентификаторе. Проглядел несколько раз. У меня есть 20 характеристик, и я слишком быстро просматривал их. Мои кнопки «Назад» теперь вызывают сбой приложения. Я перехожу от TopicsViewController к StatsViewController, а затем использую другую кнопку segued, чтобы вернуться, и это не годится для перехода назад. Нужно ли добавлять код в ViewWillLoad() TopicsViewController для сброса содержимого? Я думал, что самый последний вызов prepareForSegue установит содержимое, а затем оно останется, если не указано иное и не изменено. - person user3884788; 03.07.2016
comment
Хм, вам не нужно ничего помещать в viewWillLoad. Не могли бы вы показать мне сообщение об ошибке? @user3884788 - person Samuel Noyes; 03.07.2016
comment
Ах хорошо. Да, конечно, у меня ошибка Thread 1: signal SIGABRT в main.m. Я нажимаю кнопку Step Over среди элементов управления отладчика и получаю Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0) в той же строке в main.m. - person user3884788; 03.07.2016
comment
Хорошо, первое, о чем я могу подумать, это то, что у вас проблема с файлом раскадровки. Попробуйте перейти к обоим вашим контроллерам представления в файле раскадровки. Нажмите на них, а затем щелкните правой кнопкой мыши желтый значок вверху (я думаю, там написано «Владелец файлов»). Вы можете увидеть небольшой значок предупреждения где-то во всплывающем окне. Если это так, нажмите X рядом с этим соединением. Если это не сработает, попробуйте установить точку останова исключения, чтобы увидеть, где ошибка. @user3884788 - person Samuel Noyes; 03.07.2016
comment
Итак, во Владельце файла не было предупреждений, но точка останова исключения попала в строку, передающую строку для citeWhichStat, при нажатии кнопки «Назад» ‹ «Горячие темы» на экране «Статистика». При нажатии кнопки ‹ Назад к статистике на экране Cite точка останова исключения попадает на другую строку, где я устанавливаю строковое свойство в следующем контроллере представления. Обе строки исключений встречаются в операторах ELSE. - person user3884788; 04.07.2016
comment
Хорошо, может быть, строка равна нулю? Могу ли я увидеть соответствующий код? (Возможно, весь метод, если вы не против поделиться им) - person Samuel Noyes; 04.07.2016
comment
Возможно, он не поместится здесь, поэтому вам, возможно, придется отредактировать исходный пост @user3884788. - person Samuel Noyes; 04.07.2016
comment
Хм, некоторые нулевые, но они работают. Слишком много символов... как я могу опубликовать этот метод не в комментарии? - person user3884788; 04.07.2016
comment
Отредактируйте свой исходный пост и опубликуйте код @user3884788. - person Samuel Noyes; 04.07.2016
comment
хорошо, я сделал это. может показаться запутанным, потому что это так. стало очень запутанным, вырезая такой большой метод, чтобы опубликовать его. в основном, это внешние операторы if-else if-else, идентифицирующие номер статистики, а затем вложенные операторы if-else if-else, идентифицирующие имя темы. - person user3884788; 04.07.2016
comment
Итак, я почти уверен, что ваша проблема заключается в том, что ваш контроллер представления назначения не относится к типу CiteViewController. Попробуйте добавить следующий код в самую первую строку метода prepareForSegue: NSLog([[segue destinationViewController] isKindOfClass:[CiteViewController class]] ? @"The citeScreen is a CiteViewController" : @"The citeScreen isn't a CiteViewController. This is a problem."); Расскажите, что вы видите в консоли прямо перед сбоем. @user3884788 - person Samuel Noyes; 04.07.2016
comment
В консоли ничего не появляется до того, как произойдет сбой с этим кодом. Я разместил его сразу после этой строки: -(void)prepareForSegue... и этой строки: CiteViewController *citeScreen = [segue destinationViewController];. Вставил только один раз, но я имею в виду после обеих этих строк. - person user3884788; 06.07.2016
comment
Не ставьте его после второй строки. Поместите его в самое начало метода. Скажи мне, если что-то изменится. @user3884788 - person Samuel Noyes; 06.07.2016
comment
Хм, странно ничего не печатается. -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSLog([[segue destinationViewController] isKindOfClass:[CiteViewController class]] ? @"The citeScreen is a CiteViewController" : @"The citeScreen isn't a CiteViewController. This is a problem."); //stat1 data... - person user3884788; 06.07.2016