ОК, это должно быть легко, но я все еще ломаю голову здесь:
В моем корневом контроллере вида у меня есть NSString
, называемый "entry", и он работает отлично. Я NSLogged
это и работает.
У меня есть другой класс с именем «ParseOperation», и в нем у меня есть NSString
с именем «localEntry», и я пытаюсь отправить в «ParseOperation» переменную «entry» из «RootViewController», это мой код RootViewController для этого:
RootViewController.m
ParseOperation *parseOperation = [[ParseOperation alloc] init];
parseOperation.localEntry = entry;
Это просто не работает. Если я NSLog
в моем ParseOperation.m, он возвращает «ноль», но если я делаю это на моем RootViewController, он возвращает правильную переменную. и да, я импортировал ParseOperation.h
Вот код ParseOperation (только часть, которая использует localEntry):
ParseOperation.h
@interface ParseOperation : NSOperation <NSXMLParserDelegate>
{
NSString *localEntry;
}
@property (nonatomic, retain) NSString *localEntry;
@end
ParseOperation.m
@synthesize localEntry;
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
//NSLog(@"entrada %@",localEntry);
if ([elementName isEqualToString:localEntry])
{
self.workingEntry = [[[AppRecord alloc] init] autorelease];
}
storingCharacterData = [elementsToParse containsObject:elementName];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
if (self.workingEntry)
{
if (storingCharacterData)
{
NSString *trimmedString = [workingPropertyString stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[workingPropertyString setString:@""]; // clear the string for next time
if ([elementName isEqualToString:kIDStr])
{
self.workingEntry.appURLString = trimmedString;
}
else if ([elementName isEqualToString:kNameStr])
{
self.workingEntry.appName = trimmedString;
}
else if ([elementName isEqualToString:kImageStr])
{
self.workingEntry.imageURLString = trimmedString;
}
else if ([elementName isEqualToString:kArtistStr])
{
self.workingEntry.artist = trimmedString;
}
}
else if ([elementName isEqualToString:localEntry])
{
[self.workingArray addObject:self.workingEntry];
self.workingEntry = nil;
}
}
}
СПАСИБО!