gpt4 book ai didi

iphone - 如何使标签加载网站上的内容?

转载 作者:行者123 更新时间:2023-12-03 21:02:02 25 4
gpt4 key购买 nike

我想制作一个标签来指示乐队是否正在巡演(仅供引用的系统)

所以我希望界面中的标签能够调整为服务器上给定的值。(因此它需要从(.html)文件中提取数据并将其显示为标签。)

在我看来,WebView 很困惑,标签看起来更好。

最佳答案

我建议使用 AFNetworking - http://afnetworking.com/ 。它将允许您从服务器提取数据。

例如,您可以创建一个包含所需数据的 XML 文件。然后您可以使用 NSXMLParser 解析它并对数据执行任何您需要的操作。

示例:

NSURL *feedURL = [[NSURL alloc] initWithString:@"http://yourserver.com/yourxmlfile.xml"];
NSURLRequest *feedRequest = [[NSURLRequest alloc] initWithURL:feedURL];
AFXMLRequestOperation *feedOperation = [AFXMLRequestOperation XMLParserRequestOperationWithRequest:feedRequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
NSLog(@"XMLRequest successful - starting parser..");
[XMLParser setDelegate:self];
[XMLParser parse];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, NSXMLParser *XMLParser) {
UIAlertView *connectionError = [[UIAlertView alloc] initWithTitle:@"Connection Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
[connectionError show];
}];

XML 示例:

这是您将上传到服务器的文件。我在 AFXMLRequestOperation 中使用标题 yourxmlfile.xml,但可以随意命名。

<?xml version="1.0"?>
<band>
<bandname>The Band</bandname>
<bandontour>1</bandontour>
</band>

使用 NSXMLParser(委托(delegate))

创建一个 ivar(在您的 .h 中)来保存解析的数据。

@property (nonatomic, retain) NSString *currentProperty;

这将暂时保存元素数据,然后当解析器到达 didEndElement 时,您需要对其执行某些操作。

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {    
if ([elementName isEqualToString:@"bandontour"]) {
// found the <bandontour> tag
}
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
self.currentProperty = string;
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"bandontour"]) {
// finished getting the data in <bandontour>

// do something now that you've got your data retrieved
if (self.currentProperty) int bandOnTour = self.currentProperty.intValue;
if (bandOnTour == 1) self.yourLabel.text = @"Band is on tour!";
else self.yourLabel.text = @"Not on tour.";
}
}

参见NSXMLParser class reference了解更多信息。

关于iphone - 如何使标签加载网站上的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com