2014-07-02 13 views
32

Jestem nowym użytkownikiem Xcode, pracując przez Swift, więc nie jestem pewien, czy to, co opisuję, jest w rzeczywistości błędem.Konstruktor interfejsów Xcode - "poprawny" sposób na usunięcie/zmianę nazw błędnie wywołanych IBoutletów/IBactions

Korzystając z kreatora interfejsów i edytora asystenta, mogę tworzyć labirynty, przyciski itp., A także tworzyć ujścia i działania w kodzie za pomocą przeciągania kontrolnego.

Dopóki jestem doskonały, nie ma problemu. Ale wydaje mi się, że mam problemy, jeśli na przykład wprowadzam błędną nazwę obiektu. Albo wybieram outlet zamiast działania. Nie mogę znaleźć sposobu na korektę, która wydaje się całkowicie zepsuć IDE. Nawet jeśli usunę obiekt w IB i kod, wydaje się, że zostawiam problemy podczas kompilacji. Lub, jeśli spróbuję usunąć wiersz w kodzie i ponownie go przeciągnąć, zostanie utworzona nowa linia kodu, ale obiekt wydaje się teraz odnosić do nowej nazwy i starej, teraz brakującej nazwy.

Ponownie, pracuję z Swift --- Ponieważ nie używam/wiem Objective-C, nie wiem, czy istnieje podobne zachowanie przy użyciu tego języka.

Doceń wszelkie wskazówki. (Innym niż nie używaj Konstruktora interfejsu/scenorysów/Swift.)

+0

ABY wyjaśnić - jaki jest najlepszy sposób na skorygowanie zwykłego błędu pisowni?(Albo po prostu wybrałem złą nazwę, a teraz chcę to naprawić - więc nazwa nie jest tylko w połączeniu, ale w całym kodzie. (Tj. FInd/Replace, który obejmuje sam IB?) –

+0

Aby zmienić nazwę IBOutlet bez usuwania połączenia spróbuj tego http://stackoverflow.com/a/37313505/7250862 –

Odpowiedz

53

Użyj Inspektora połączeń, aby przerwać połączenie. Następnie możesz zmodyfikować/usunąć obiekt i/lub kod bez martwienia się.

enter image description here

+2

Dzięki - zaktualizowałem moje własne pytanie, aby wyjaśnić: - jaki jest najlepszy sposób, aby poprawić prosty błąd ortograficzny (lub jeszcze lepiej, poprawić, aby nazwa zmiennej była bardziej znacząca, pojawia się wiele razy w kodzie –

+1

@ user1639473 - Nie ma znalezienia/zamiany, która obejmuje sam IB (AFAIK, mogą dodać tę funkcję w pewnym momencie). 1) przerwać połączenie 2) znaleźć/zastąpić w kodzie 3) odtworzyć połączenie. Krok 3 można wykonać, przeciągając kontrolkę z obiektu IB do istniejącej linii kodu, lub możesz przeciągnąć (bez kontroli) z pustego kręgu na * lewym marginesie edytora kodu *, do obiektu * w IB *. – user3386109

+0

Aby zmienić nazwę obiektu, użyj opcji Edycja> Refaktor> Zmień nazwę (lub kliknij obiekt prawym przyciskiem myszy). To również zmienia nazwę dowolnego odniesienia do IBOutlet w Konstruktorze interfejsu. –

6

można znaleźć niewykorzystane IBOutlets w pliku, w którym są one zadeklarowane przez patrząc w „rynny” w edytorze źródłowym za „niewypełnionego dziury”.

enter image description here

8

Zaakceptowanych odpowiedź jest w porządku, ale istnieje kilka sposobów, aby zrobić to samo.

Metoda pierwsza

Kliknij prawym przyciskiem myszy w widoku serii ujęć, a następnie kliknij przycisk X przez małe gniazdka odsyłania.

enter image description here

Metoda druga

Kliknij prawym przyciskiem myszy nazwę widoku w Zarysie Dokument. Następnie kliknij małą literę x obok gniazda referencyjnego.

enter image description here

Metoda Trzy

Wybierz widok w serii ujęć, a następnie kliknij Inspektor Połączenia. Następnie możesz kliknąć małą literę x, aby usunąć odniesienie do wylotu.

enter image description here

Dodatkowe Zawarte w Kodeksie

enter image description here

Jeśli otrzymujesz połączenia wylotowe w kodzie, które nie dodają się zobaczyć this answer.

Powiązane problemy