declared-property
Objective - C zadeklarowane atrybuty @ property (nonatomic, copy, strong ,weak)
Czy ktoś może mi wyjaśnić szczegółowo kiedy muszę używać każdego atrybutu: nonatomic, copy, strong, weak, i tak dalej, dla deklarowanej nieruchomości, i wyjaśnić, co każdy robi? Jakiś przykład też byłby świetny. Używam ARC.
Czy zadeklarowane właściwości wymagają odpowiedniej zmiennej instancji?
Czy właściwości w Objective-C 2.0 wymagają zadeklarowania odpowiedniej zmiennej instancji? Na przykład, jestem przyzwyczajony ... mic, retain) NSString *name;
@end
Czy to jest nadal ważne? I czy w jakiś sposób różni się od mojego poprzedniego przykładu?
Czy właściwość NSString pod ARC powinna być mocna czy kopiowana?
Gdy nie kompiluje się z ARC, zaleca się stosowanie właściwości copy dla typów danych, takich jak NSString. Nie mogłem znaleźć odpowiedniej dokumentacji na temat używania copy w trybie ARC. Czy ktoś może mi powiedzieć co ma zastosowanie do ARC?
mój widok.rama.pochodzenie.x = wartość; nie działa - ale dlaczego?
Wiem, że nie mogę tego użyć:
myView.frame.origin.x = 25.0;
I że muszę użyć tego zamiast:
CGRect myFrame = myView.frame; ... aje "Expression not assignable". Jakiś czas temu pojawił się błąd kompilacji "lvalue wymagane jako lewy operand przypisania".
Get property name as a string
Potrzebuję sposobu, aby przekazać nieruchomość i dostać nazwę przypisaną do niej. Jakieś sugestie?
@property (nonatomic, ret ... ject *crazyObject;
NSString *str = SOME_WAY_TO_GET_PROPERTY_NAME(crazyObject);
// Above method should return @"crazyObject"
Dlaczego zadeklarowana Właściwość używa zarówno retain, jak i readonly?
Zauważyłem, że niektóre przykłady Apple zawierają zarówno modyfikator retain i readonly właściwości. Jaki jest sens włączania ... y, gdy używamy modyfikatora readonly?
Przykład: @property (retain, readonly) NSString *title; z przykładu AnimatedTableView.
Czy @synchronized (self) tworzy blok, w którym prefiks self jest niepotrzebny we właściwościach?
Przeczytałem coś w jakimś obcym kodzie i chcę sprawdzić moje założenie:
@synchronized(self) służy do pozbycia się prefiksu ... tring * strText = @"var in function";
@synchronized(self)
{
strText = @"var class (self.strText)";
}
}