mam różne awarie pojawiają się w raportach, które są raportowania z następującego powodu:udało się wygenerować newParagraphStyle katastrofę
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'failed to generate newParagraphStyle'
Aplikacja, że to dzieje się na nie ustawić wiele nadana tekstu programowo (czcionki, kolory , czasami style akapitowe), ale nie mogę znaleźć żadnego wzoru bezpośrednio z tym związanego. Co ja widzę to prawie wszystkie raporty zawierają odniesienie w ślad stosu do jakiejś formy setLineBreakMode:
-[_UICascadingTextStorage(Accessors) setLineBreakMode:]
Nigdy nie byłem w stanie odtworzyć ten sam, ale nie pojawiają się w dość regularnie w raportowaniu awarii. Nie ustalam konkretnie trybu podziału linii w żadnym z tych miejsc. Jakieś pomysły?
EDYCJA: Spędziłem więcej czasu, patrząc na to i udało mi się znaleźć wzór do odtworzenia. Tak więc mam UITextField, a kiedy naciśniesz return na klawiaturze, zostanie wykryty znak "/ n", a pole tekstowe zrezygnuje z pierwszego statusu respondenta. Jeśli w którymś momencie później spróbujesz zmodyfikować tekst (lub przypisany tekst) pola, ulegnie awarii. Jest jeden kluczowy element, zdarza się to tylko wtedy, gdy masz ustawione opcje typowania. Nie ma znaczenia, do czego są ustawione.
Próbowałem wszystkiego, ustawiając typingAttributes na zero przed ustawianiem tekstu, ustawianie stałego łańcucha, aby upewnić się, że nie było to, do czego je ustawiliśmy - bez powodzenia. Nieustannie się zawiesza. Wygląda na to, że kiedy wejdziesz w ten stan, pole tekstowe jest po prostu zepsute. Hackem, aby tego uniknąć, jest zdmuchnięcie pola tekstowego i stworzenie nowego - ale to po prostu. Hack.
Niektóre bardziej interesujące informacje, tak że kod wykrywa klawisz Enter nie był dobrze napisany - wykryto go „/ n” i nie przyniosło w:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Nie należy zastosować odpowiednią metodę:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
w jednym miejscu w aplikacji to rzeczywiście stała katastrofę, w innych miejscach to było zawsze przy użyciu odpowiedniej metody i katastrofy wciąż dzieje. Jedyna praca wokół to zdmuchnięcie pola tekstowego i utworzenie nowego. Dla mnie wygląda to jak błąd w samym systemie iOS.
Ja też dostałem katastrofy ... oczyść projekt i ponownie przebuduj. Naprawiono. Nie wiem o co chodzi –