Определение NSString - PullRequest
       9

Определение NSString

0 голосов
/ 23 января 2010

Как мне определить строку NSString с именем media:thumbnail, это дает мне ошибку.

error:bit-field 'media' has invalid type

Ответы [ 4 ]

4 голосов
/ 23 января 2010

Двоеточие (":") является зарезервированным символом в C, C ++ и Objective-C и не может использоваться в идентификаторах. http://eli -project.sourceforge.net / c_html / c.html # s6.1.2 Попробуйте NSString * media_thumbnail = @ "ваш текст NSString";

2 голосов
/ 23 января 2010

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

В этом случае ...

NSString *steve=@"steve";

... первый "Стив" - это просто идентификатор. Компилятор использует его для обозначения места в памяти, чтобы его можно было легко найти в коде. Второй «Стив» является значением и не имеет абсолютно никакого отношения к идентификатору. Ни один Стив не требуется для другого. Например ...

NSString *bob=@"steve";

и

NSString *steve=@"bob";

... одинаково действительны и полностью разделяют объекты.

Как отмечалось здесь другими, символ двоеточия является зарезервированным символом, используемым для обозначения логических операций. Вы не можете использовать его в идентификаторе. Это ...

NSString * media: thumbnail = @ "someValue";

... выдает сообщение об ошибке, потому что компилятор видит ...

адрес по NSString с идентификатором "медиа" побитовое по идентификатору "thumbnail" равно адрес NSString со значением "SomeValue".

Вам не нужно определенное имя идентификатора для строки, чтобы идентифицировать значение, взятое из xml. Подойдет любое официальное название.

Звучит так, как будто вам нужно связать метку xml "media: thumbnail" с определенным значением. В этом случае вам нужен словарь, например:

NSMutableDictionary *myDict=[[NSMutableDictionary alloc] initWithCapacity:1];
[myDict setValue:@"someXMLvalue" forKey:@"media:thumbnail"];
NSString *myThumbnail=[myDict valueForKey:"media:thumbnail"];
0 голосов
/ 23 января 2010

# определить ключ @ "media: thumbnail"

или

# определить ключ [NSString stringWithFormat: @ "media: thumbnail"]

и т.д.

0 голосов
/ 23 января 2010

Если вы хотите сопоставить значение ключа с вашим xml, то в objecitve c есть функция замены строки, подобная этой.

NSString *strval = [xmlstrval stringByReplacingOccurrencesOfString:@":" withString:@"_"];

Теперь strval - это значение имени переменной «media_thumbnail».

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