2016-07-02 2 views
0

Это очень длинный метод, и он немного перепутался, пытаясь вырезать его, так что StackOverflow позволяет мне сообщение так много. МетодXcode- IF ... ELSE IF ... ELSE Заявление в prepareForSegue замещает данные в блоке IF с данными из блока ELSE

StatsViewController prepareForSegue:

`- (Недействительными) prepareForSegue: (UIStoryboardSegue *) отправитель Segue: (идентификатор) отправителя { // STAT1 данные ... ПОЛНЫЙ если ([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"; 
    } 
} 

} `

+1

Поскольку кибербезопасность - это ваш «проваливающий» случай, в любое время, когда вы не получите соответствующее имя, вы получите кибербезопасность. Дважды тщательно проверьте свои имена segue, установите контрольную точку в prepareForSegue и перейдите, чтобы узнать, какие значения у вас есть. – Paulw11

+0

Я проверил свои идентификаторы segue три раза и ничего не поймал. Моя точка останова выдает ошибку сразу после строки - (void) prepareForSegue ..., где я вызываю метод. Это меня смущает, чего я должен исходить из этого? – user3884788

+0

Точка останова не должна вызывать ошибки. Он должен остановить ваше приложение, чтобы вы могли проверять переменные в отладчике и шаг за строкой. Даже распечатка вашего идентификатора segue может помочь, если вы не можете определить отладчик – Paulw11

ответ

0

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

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

+0

Я уже рассмотрел свои идентификаторы segue, прежде чем задавать этот вопрос и снова пару раз. Даже мои NSLogs ничего не показывают, как будто prepareForSegue вообще не называется. – user3884788

+0

Итак, вы добавили NSLog за пределами операторов if, и prepareForSegue никогда не вызван? Вы уверены, что класс View Controller установлен в ThreadViewController в файле раскадровки? @ user3884788 –

+0

Да, я добавил его за пределами операторов if и внутри них. Фактически он установлен в ThemeViewController. Пытаясь работать через контрольные точки, но я не обнаруживаю ничего, что мне там было полезно. Спасибо за вашу помощь. – user3884788