Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Flaze
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 160
#1

Что значат собака (@) и процент (%) в тексте кода - Objective-C

07.01.2014, 22:47. Просмотров 2366. Ответов 4
Метки нет (Все метки)

Добрый день всем! Извините, если задаю вопрос немного неправильно или это уже было.

Учусь в колледже на отделении ПОИТ и пока в программировании знаю из языков только turbo pascal и то совсем немного. Очень привлекли мобильные платформы и у меня появилось желание научиться программировать под iOS. И вот я начал учить objective c на http://tryobjectivec.codeschool.com/

Не понимаю, что значат собака(@) и процент(%) (по отдельности и в сочетании). Например, вот здесь: NSLog(@"Andrey); и здесь NSLog(@"Hello there, %@.", firstName); и вот здесь NSLog(@"%@ %@", firstName, firstName);

Объясните мне пожалуйста, что значат эти строки.

И еще вопрос. Чувствителен ли objective c к регистру? разные ли это переменные: "firstname" и "firstName"?

И, если можно, человек, который мне ответит, дай пожалуйста свой скайп.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2014, 22:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что значат собака (@) и процент (%) в тексте кода (Objective-C):

Собака в логине - Objective-C
Возможно, дурной вопрос, но я что-то туплю второй день. Есть у меня логин к FTP-серверу вида username@host. На всякий случай уточняю. Это...

скажите что значат %.2f, 4,8 что значат эти цифры и как оно выведет на экран - C++
printf("\n Точность плавающей точки для PI: %.2f, %.4f, %.8f\n", PI,PI,PI); скажите что значат %.2f, 4,8 что значат эти цифры и как оно...

Подскажите, что значат отрывки кода - Python
Есть отрывки кода. Не могу понять, что это такое? 1) new = Я догадываюсь, что здесь цикл, и формируется массив. Что происходит...

Объяснить в комментариях, что значат каждые строчки кода - JavaScript
Нужно объяснить, какие функции у каждой строчки кода <html> <head> <title> тест по информатике для младших школьников ...

Что значат **? - C++
Что значат ** ??? double** mas = (double**)malloc(sizeof(double)*(M));

Что значат строки? - C++
#include <iostream> using namespace std; int main() { double number, min; min = 0; for(int i = 0; i < 10;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
07.01.2014, 23:16 #2
@"someString"-objC строка, @-символ перед скобками означает что это строка, а именно objC строка, объект NSString. "myString"-это просто Си строка.

% точно не знаю как это называется но это символ указывает на то что в строку вставляется либо объект либо число либо еще что то.
% означает что аргументом который вставляется в строку будет objC объект. Если тебе надо вставить int например то пишется %d NSLog(@"some value:%d",10); после % указывается какой тип будет иметь аргумент который вставляется в строку.

Да objC чувствительный к регистру someValue; и somevalue; это разные переменные.
1
iywenko
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 4
19.01.2014, 18:27 #3
Objective-C
1
NSLog(@"Andrey);
тут упущена еще закрывающая кавычка, надо
Objective-C
1
NSLog(@"Andrey");
любая строка в Objective-C, это @"", как и было уже замечено.

Objective-C
1
NSLog(@"some value:%d",10);
обычное форматирование строк в C, почитайте тут: http://lord-n.narod.ru/download/book.../13/printf.htm
в случае '%@', подразумевается что будет выведен объект.
то есть
Objective-C
1
2
3
NSLog(@"%<object to log>", <object to log>);
NSString *testString = @"This is a test string.";
NSLog(@"Test: %@", testString);
вывод:
Test: This is a test string.

другие примеры:
Objective-C
1
2
3
4
5
6
7
8
NSString *objString = @"object 1";
        NSNumber *objNumber = [NSNumber numberWithInt:2];
        NSNumber *moreObjNumber = @3;
        NSArray *oldVariantArray = [[NSArray alloc] initWithObjects:@"stringObject", [NSNumber numberWithInt:5], [NSNumber numberWithBool:YES], nil];
        NSArray *freshVariantArray = @[@"stringObject2", @6, @YES];
 
        NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"object for key1", @"key1", objString, @"key2", objNumber, @"key3", moreObjNumber, @"key4", oldVariantArray, @"key5", freshVariantArray, @"key6", nil];
        NSLog(@"\n\nDifferent usage for \"@\":\n%@", dictionary);
Кстати, словари можно и так инициализировать:
Objective-C
1
NSDictionary *dict = @{ @"key" : objNumber };
Вывод:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Different usage for "@":
{
    key1 = "object for key1";
    key2 = "object 1";
    key3 = 2;
    key4 = 3;
    key5 =     (
        stringObject,
        5,
        1
    );
    key6 =     (
        stringObject2,
        6,
        1
    );
}
0
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
21.01.2014, 12:07 #4
Не понимаю, что значат собака(@) и процент(%) (по отдельности и в сочетании). Например, вот здесь: NSLog(@"Andrey); и здесь NSLog(@"Hello there, %@.", firstName); и вот здесь NSLog(@"%@ %@", firstName, firstName);
собака в OBJC означает что дальше за ней идет литерал-оператор

некоторые примеры литералов массивов и словарей (IOS SDK 6+)
http://www.imaladec.com/story/literals

некоторые более старые литерал операторы

@selector ( метод объета )
@"строковое значение" - NSString объект
@1 - NSNumber значение
@(2+2) - NSNumber значение
@(2+2.5f) - NSNumber значение

также через собаку пишутся операторы языка непосредственно специфичные для OBJC и не совместимые с чистым СИ

@property
@class
@interface
@impementation
@end

и другие

собака в методах форматированного вывода

NSLog
NSString stringWithFormat

показывает что будет выводиться объект как строка, в зависимости от типа объекта он будет выводиться по-разному.
При этом сохраняется обратная совместимость с СИ форматированием

подробнее о форматировании http://ru.wikipedia.org/wiki/Printf

То есть все выводимые параметры начинаются со знака процент

%@

Например если указать в качестве передаемого параметра массив, то будет выведены все его элементы.
Для строк и чисел %@ просто выводит их значение
0
iBaga
Сообщений: n/a
28.01.2014, 22:22 #5
Так же % используется в операциях деления, и означает Остаток от деления.
Результатом оператора % будет остаток от целочисленного деления первого операнда на второй.

Пример:

int x = 27, y = 7 , reminder;
reminder = x % y;

reminder будет равен 6, так как 27 - 6 = 21, 21 / 7 = 3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2014, 22:22
Привет! Вот еще темы с ответами:

Что значат символы? - C++
Что означают эти операции &quot;-=&quot; и &quot;/=&quot; Синтаксис for(j=i+1; j&lt;n; j++) coef(i) -= A(i,j)*coef(j); ...

Что значат строки - Turbo Pascal
Извините за мой глупый вопрос на что значат вот эти строки: const TAB = ^I; CR = ^M;

Что значат троеточие? - C++
привет. смотрю такой сырец. Как дословно переводятся эти три точки? template &lt;typename Iterator, typename Expr , typename...

Что значат эти цифры!? - Теория вероятностей
Добрый вечер. Я очень извиняюсь, может это и глупый вопрос, но что значат эти цифры: [40,40;40,43) [40,43;40,46). Если бы там была 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.01.2014, 22:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru