"использование неразрешенного идентификатора" в swift

<p>итак, я делаю приложение, и все работает отлично. но сегодня я создал новый класс, как обычно, и по какой-то причине в этом классе я не могу получить доступ к переменной public/global из других классов. все остальные классы могут, но теперь, когда я пытаюсь создать новый класс, я не могу. как бы это исправить?</p><p>я использую swift и xcode 6.</p><p>рабочий класс:</p><pre><code>import uikit import foundation import parse import coredata var signedin = true class viewcontroller: uiviewcontroller { </code></pre><p>новый класс:</p><pre><code>import uikit class newclass: uiviewcontroller { override func viewdidload() { super.viewdidload() signedin = false } </code></pre><p>но на <code>signedin = false</code></p><p>я получаю ошибку: </p><blockquote> <p>использование неразрешенного идентификатора «signin»</p> </blockquote>

<p>одной из возможных проблем является то, что ваш новый класс имеет другую цель или другую цель.</p><p>например, у него может быть цель тестирования, а у другой - нет. для этого конкретного случая вы должны включить все свои классы в цель тестирования или ни один из них.</p><p><img src="https://i.stack.imgur.com/w49az.png" alt="targets"></p>

<p>для меня эта ошибка произошла, потому что я пытался вызвать<em> вложенную </em>функцию. единственное, что мне нужно было сделать, чтобы исправить это, - вывести функцию<em> out </em>в область видимости.</p>

<p>«использование неразрешенного идентификатора» в swift также происходит, когда вы забыли импортировать библиотеку. например, у меня есть ошибка: <a href="https://i.stack.imgur.com/vsldc.png"> <img src="https://i.stack.imgur.com/vsldc.png" alt="enter image description here"> </a> </p><p>в котором я забыл <code>uikit</code></p><blockquote> <p>импорт uikit</p> </blockquote>

<p>я получил эту ошибку для mantle framework в моем проекте objective-swift.</p><ol> <li>проверьте, есть ли импорт в файле bridging-header.h</li> <li>измените целевое членство для framework в файле <strong>mantle.h</strong>, как показано на снимке экрана ниже.</li> </ol><p>переключайтесь между частным членством сначала строите проект, в итоге получайте ошибки. затем соберите проект с public membership для всех платформ, появившихся для файла <strong>mantle.h</strong>, вы должны добиться успеха.</p><p>это просто ошибка сборки с несколькими фреймворками в проекте objective-c swift.</p><p> <a href="https://i.stack.imgur.com/ink02.png"> <img src="https://i.stack.imgur.com/ink02.png" alt="enter image description here"> </a> </p>

<p>иногда компилятор запутывается в синтаксисе вашего класса. это часто случается, если вы вставляете в источник откуда-то еще.</p><p>попробуйте свести «неразрешенный» исходный файл к минимуму, очистить и собрать. как только он соберется успешно, добавьте всю сложность обратно в ваш класс.</p><p>это заставило меня уйти, когда перезапуск xcode не работал.</p>

<p>потому что ты не объявил это. если вы хотите использовать переменную другого класса, вы должны использовать </p><pre><code>override func prepareforsegue(segue: uistoryboardsegue, sender: anyobject?) { var destviewcontroller : viewcontroller = segue.destinationviewcontroller as viewcontroller destviewcontroller.signedin = false } </code></pre><p>вы должны поместить этот код в конец кода newclass</p>

<p>ваша <code>newclass</code> наследуется от <code>uiviewcontroller</code>. вы объявили <code>signedin</code> в <code>viewcontroller</code>. если вы хотите, чтобы <code>newclass</code> мог идентифицировать эту переменную, он должен быть объявлен в классе, от которого наследуется ваша <code>newclass</code>.</p>

<p>в другом месте я видел эту ошибку, когда у вашего проекта<strong> <em>несколько целей</em> </strong>and<strong> <em>несколько заголовков моста</em> </strong>. если это общий класс, убедитесь, что вы добавили ресурс ко всем мостовым заголовкам.</p><p>хороший совет - загляните в левую панель issue navigator; корневой объект покажет цель, которая выдает жалобу.</p>

<p>если это касается класса, который вы создали, убедитесь, что этот класс не является вложенным.</p><p>f.e </p><p><strong> a.swift </strong></p><pre><code>class a { class arelated { } } </code></pre><p>вызов <code>var b = arelated()</code> даст «использование неразрешенного идентификатора: arelated».</p><p>вы также можете:</p><p>1) разделите классы, если хотите, на один файл:</p><p><strong> a.swift </strong></p><pre><code>class a { } class arelated { } </code></pre><p>2) поддерживайте ту же структуру и используйте включающий класс, чтобы добраться до подкласса:</p><p><code>var b = a.arelated</code></p>

<p>я сделал глупую ошибку. я забыл упомянуть класс как открытый или открытый при обновлении кода в рабочем пространстве cocoapod. </p><p>пожалуйста, проверьте, если accesor работает в отдельном рабочем пространстве.</p>