JQuery не может добавлять элементы к (кажется, они добавляют их в DOM-проводник, но не на экран).
Обходным путем является добавление со всеми элементами, которые вам нужны для этой страницы, а затем изменение атрибутов элементов с помощью
.attr()
.
$('body')
.append($(''))
.mousemove( function (e) {
$("#c").attr({
cx: e.pageX,
cy: e.pageY
});
});
@synthesize
создает getter и setter для переменной.
Это позволяет задать некоторые атрибуты для ваших переменных, и когда вы @synthesize
это свойство для переменной, вы создаете getter и setter для переменной.
Имя свойства может быть таким же, как имя переменной. Иногда люди хотят, чтобы оно было другим, чтобы использовать его в init
или dealloc
или когда параметр передается с тем же именем переменной.
Из документации :
Вы используете ключевое слово @synthesize, чтобы сообщить компилятору, что он должен синтезировать методы установки и / или получения для свойства, если вы не предоставляете их в @implementation блокировать.
В основном синтезатор создает методы setMapView и mapView, которые устанавливают и получают mapView1
В вашем примере mapView1
- это переменная экземпляра (ivar), часть хранилища памяти, принадлежащая экземпляру класса, определенного в example.h
и example.m
. mapView
- это имя свойства . Свойства - это атрибуты объекта, которые могут быть прочитаны или установлены с использованием точечной записи: myObject.mapView
. Свойство не имеет , чтобы быть основанным на ivar, но большинство свойств основаны на нем. Объявление @property
просто сообщает миру, что существует свойство с именем mapView
.
@synthesize mapView = mapView1;
Эта строка сообщает компилятору создать установщик и получатель для mapView
, и что они должны использовать ivar с именем mapView1
. Без части = mapView1
компилятор предположил бы, что свойство и ivar имеют одинаковое имя. (В этом случае это приведет к ошибке компилятора, поскольку отсутствует ivar с именем mapView
.)
Результат этого оператора @synthesize
аналогичен результату, если бы вы добавили этот код самостоятельно:
-(MKMapView *)mapView
{
return mapView1;
}
-(void)setMapView:(MKMapView *)newMapView
{
if (newMapView != mapView1)
{
[mapView1 release];
mapView1 = [newMapView retain];
}
}
Если вы действительно добавите этот код в класс, вы можете заменить оператор @synthesize
на
@dynamic mapView;
Главное, чтобы четкое концептуальное различие между ivars и недвижимостью. На самом деле это две очень разные концепции.
Создает геттер и сеттер для вашего объекта. Вы можете получить доступ примерно так:
MKMapView* m = object.mapView;
или
object.mapView = someMapViewObject
mapView1 - это имя ivar в классе, mapView - это имя для метода (ов) получения / установки.