mam klasy A z nagłówka, który wygląda mniej więcej tak:wartości ustawienia w niestandardowych struct jako nieruchomości w Objective-C
typedef struct {
int x;
int y;
} Position;
@interface ClassA : NSObject
@property Position currentPosition;
@end
I próbuję przypisać poszczególne wartości struct pozycji z danej nieruchomości inna klasa jak ta:
ClassA * classA = [ClassA new];
classA.currentPosition.x = 10;
Co daje błąd "wyrażenie nie jest przypisywane" i nie będzie się kompilować.
mogę ustawić go tak:
ClassA * classA = [ClassA new];
Position position = {
.x = 1,
.y = 2
};
classA.currentPosition = position;
I mogę nawet zmieniać poszczególne "Właściwości" z position
zmiennej tak:
ClassA * classA = [ClassA new];
Position position = {
.x = 1,
.y = 2
};
// WORKS
position.x = 4;
// DOESN'T WORK
// classA.currentPosition.x = 4;
classA.currentPosition = position;
Dlaczego nie mogę ustawić wartości indywidualnie kiedy są własnością?
Jeśli użyłeś typedef, nie musisz dodawać 'struct' w deklaracji @property. –
@NicolasMiari - poprawiłem, próbowałem różnych sposobów deklarowania, po prostu skopiowałem niewłaściwe rzeczy. – Logan
Zobacz także [Jak uzyskać dostęp do przypisania do elementów CGRect, gdy CGRect jest instancją?] (Http://stackoverflow.com/q/5860755), mimo że jest to wstępnie zadeklarowana właściwość. –