Свойства Objective C в iPhone Development

function UniqueDateTime(format='',language='en-US'){
    //returns a meaningful unique number based on current time, and milliseconds, making it virtually unique
    //e.g : 20170428-115833-547
    //allows personal formatting like more usual :YYYYMMDDHHmmSS, or YYYYMMDD_HH:mm:SS
    var dt = new Date();
    var modele="YYYYMMDD-HHmmSS-mss";
    if (format!==''){
      modele=format;
    }
    modele=modele.replace("YYYY",dt.getFullYear());
    modele=modele.replace("MM",(dt.getMonth()+1).toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("DD",dt.getDate().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("HH",dt.getHours().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("mm",dt.getMinutes().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("SS",dt.getSeconds().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("mss",dt.getMilliseconds().toLocaleString(language, {minimumIntegerDigits: 3, useGrouping:false}));
    return modele;
}
8
задан codecowboy 8 July 2009 в 07:31
поделиться

2 ответа

Свойства и ivars - это две совершенно разные вещи.

А переменная экземпляра - это переменная, хранящаяся внутри объекта, поэтому каждый экземпляр имеет свою собственную. На него ссылаются путем добавления указателя относительно объекта pointer / self (немного косвенно для современной среды выполнения, но функционально эквивалентно). ivars обычно являются внутренними по отношению к классу и по умолчанию могут быть доступны только для класса и его потомков (@protected). Внутри методов они доступны без квалификации, в противном случае к ним можно (но редко, и обычно не следует) обращаться через косвенный доступ, например obj-> ivar.

Свойство определяет геттер и сеттер (сеттер не является обязательным) интерфейс . Это все, что он делает. Он определяет два общедоступных метода:

- (TYPE) propname;
- (void) setPropname: (TYPE) newPropname;

Они определены как методы точно так, как если бы вы объявили их вот так, ни больше, ни меньше.

7
ответ дан 5 December 2019 в 15:25
поделиться

Я думаю, вы в значительной степени там. @Property и @synthesize делают объявления и реализацию средств доступа для уже объявленного ivar. У вас есть различные атрибуты, которые вы также можете определить в @property, что дает вам контроль над тем, как он создается, чтобы сделать его подходящим для ivar

. Взгляните на «Объявленные свойства Objective C 2.0»

4
ответ дан 5 December 2019 в 15:25
поделиться