Метод экземпляра и синтаксис - PullRequest
0 голосов
/ 04 декабря 2011

Мне просто интересно, есть ли разница в этих двух типах синтаксиса

Скажем, у меня есть что-то вроде этого ..

NSString *Jam = [[NSString alloc]init];

или

NSString *Jam;

не имеет значения, какая ..

какая разница между выполнением следующих двух строк кода ..

Jam = [Jam substringToIndex:1];

и

[Jam substringToIndex:1];

и почемуэто то, что я нахожу только NSString, чтобы иметь возможность получить что-то вроде этого ..

, если бы я использовал любой другой класс, который я использовал до сих пор (я не работал с таким количеством), этот типсинтаксис не работает.

Принимая во внимание, что с классом NSString я могу сделать

NSString *object = [object stringByAppendingFormat:@"%@"];

или

NSString *object;
object = [object stringByAppendingFormat:@"%@"];

, но с любым другим классом ... скажем, NSInteger, если я попробую тот же синтаксис..

NSInteger *number = [number setIntValue:2];

Я получаю сообщение об ошибке, сообщающее, что значение void не игнорируется, как должно быть.

Спасибо, куча.

1 Ответ

0 голосов
/ 04 декабря 2011

Это работает для NSString, потому что stringByAppendingFormat возвращает новый NSString, который создается путем добавления новой строки к исходной.

setIntValue не возвращает новую копию класса, поэтому вы получаете сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...