Pytania otagowane jako automatic-ref-counting

Automatyczne liczenie odwołań (ARC) to funkcja kompilatora, która zapewnia automatyczne zarządzanie pamięcią obiektów Objective-C i Swift.

18
Jak mogę wyłączyć ARC dla pojedynczego pliku w projekcie?
Z powodzeniem używam ARC w moim projekcie. Jednak napotkałem kilka plików (np. W testach jednostkowych i próbnych obiektach), w których reguły ARC są teraz nieco bardziej kruche. Pamiętam, że istniała możliwość wyłączenia ARC dla poszczególnych plików, chociaż nie mogłem znaleźć tej opcji. czy to możliwe? Jak mogę wyłączyć ARC dla …

19
performSelector może spowodować wyciek, ponieważ jego selektor jest nieznany
Otrzymuję następujące ostrzeżenie przez kompilator ARC: "performSelector may cause a leak because its selector is unknown". Oto co robię: [_controller performSelector:NSSelectorFromString(@"someMethod")]; Dlaczego dostaję to ostrzeżenie? Rozumiem, że kompilator nie może sprawdzić, czy selektor istnieje, czy nie, ale dlaczego miałoby to spowodować wyciek? Jak mogę zmienić kod, aby nie wyświetlało się …

11
Czy IBOutlety powinny być mocne czy słabe pod ARC?
Tworzę wyłącznie na iOS 5 przy użyciu ARC. Czy IBOutlets UIView(s) i (podklasy) powinny być stronglub weak? Następujące: @property (nonatomic, weak) IBOutlet UIButton *button; Pozbyłby się tego wszystkiego: - (void)viewDidUnload { // ... self.button = nil; // ... } Czy są jakieś problemy? Szablony są używane, strongpodobnie jak automatycznie generowane …

9
Czy powinniśmy zawsze używać [nieposiadanego siebie] w zamknięciu w Swift
Podczas sesji WWDC 2014 403 Intermediate Swift i transkrypcji pojawił się następujący slajd Mówca powiedział w takim przypadku, że jeśli go nie użyjemy [unowned self], nastąpi wyciek pamięci. Czy to oznacza, że ​​zawsze powinniśmy używać [unowned self]zamknięcia wewnętrznego? W linii 64 ViewController.swift aplikacji Swift Weather nie używam [unowned self]. Ale …

8
Cel ARC: mocne vs utrzymanie i słabe vs przypisanie
Istnieją dwa nowe atrybuty zarządzania pamięcią dla właściwości wprowadzonych przez ARC strongi weak. Poza tym copy, co jest oczywiście czymś zupełnie innym, czy są jakieś różnice między strongvs retaina weakvs assign? Z mojego zrozumienia, jedyną różnicą jest to, że weakprzypisze nilwskaźnik do wskaźnika, podczas gdy assignnie, co oznacza, że ​​program …


2
Dlaczego Apple zaleca stosowanie dispatch_once do implementacji wzorca singletonu pod ARC?
Jaki jest dokładny powód użycia dispatch_once we współużytkowanym instancie dla singletona pod ARC? + (MyClass *)sharedInstance { // Static local predicate must be initialized to 0 static MyClass *sharedInstance = nil; static dispatch_once_t onceToken = 0; dispatch_once(&onceToken, ^{ sharedInstance = [[MyClass alloc] init]; // Do any other initialisation stuff here …


10
Problem semantyczny: Zsyntetyzowany getter właściwości jest zgodny z konwencją nazewnictwa kakao dla zwracanych „posiadanych” obiektów
Obecnie używam pakietu iOS 5 SDK, próbując opracować moją aplikację. Próbuję uczynić NSString właściwością, a następnie zsyntetyzować go w pliku .m (robiłem to wcześniej bez żadnych problemów). Natknąłem się na to: „Problem semantyczny: Zsyntetyzowany getter właściwości jest zgodny z konwencją nazewnictwa kakao dotyczącą zwracania„ posiadanych ”obiektów.” To jest mój kod: …

8
Co oznacza „konwersja skrzynki w chronionym zakresie” przy konwersji projektu na ARC?
Co oznacza „konwersja skrzynki w chronionym zakresie” przy konwersji projektu na ARC? Konwertuję projekt do użycia ARC, używając Xcode 4 Edycja -> Refaktoryzacja -> Konwertuj na ARC Objective-C ... Jednym z błędów, które dostaję, jest to, że „skrzynka przełączników jest chroniona” na „niektórych” przełącznikach w skrzynka przełączników. Edytuj, oto kod: …

6
Zawsze przekazujesz słabe odniesienie do siebie do bloku w ARC?
Jestem trochę zdezorientowany co do użycia bloku w Objective-C. Obecnie używam ARC i mam dość dużo bloków w mojej aplikacji, obecnie zawsze odnoszących się do selfzamiast jej słabego odniesienia. Czy może to być przyczyną zatrzymania selfi zablokowania bloków przed zwolnieniem? Pytanie brzmi: czy zawsze powinienem używać weakodniesienia selfw bloku? -(void)handleNewerData:(NSArray …


5
Jakiego rodzaju przecieków automatyczne liczenie odniesień w Objective-C nie zapobiega lub minimalizuje?
Na platformach Mac i iOS wycieki pamięci są często spowodowane niepublikowanymi wskaźnikami. Tradycyjnie zawsze sprawą najwyższej wagi było sprawdzanie przydziałów, kopiowanie i przechowywanie, aby upewnić się, że każdy ma odpowiedni komunikat o zwolnieniu. Zestaw narzędzi dostarczany z Xcode 4.2 wprowadza automatyczne zliczanie referencji (ARC) w najnowszej wersji kompilatora LLVM , …

8
Jak uniknąć przechwytywania siebie w blokach podczas implementacji interfejsu API?
Mam działającą aplikację i pracuję nad konwersją jej na ARC w Xcode 4.2. Jedno z ostrzeżeń wstępnych polega na selfsilnym uchwyceniu w bloku prowadzącym do cyklu zatrzymania. Zilustrowałem prosty przykład kodu, aby zilustrować problem. Wydaje mi się, że rozumiem, co to oznacza, ale nie jestem pewien, czy „poprawny” lub zalecany …

1
Niestandardowy dealloc i ARC (Objective-C)
W mojej małej aplikacji na iPada mam funkcję „zmień język”, która korzysta z obserwatora. Każdy kontroler widoku rejestruje się u mojego obserwatora podczas jego viewDidLoad:. - (void)viewDidLoad { [super viewDidLoad]; [observer registerObject:self]; } Gdy użytkownik naciśnie przycisk „zmień język”, nowy język jest zapisywany w moim modelu, a obserwator zostaje powiadomiony …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.