首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将UITableView从互联网解析的数据中分离出来?

如何将UITableView从互联网解析的数据中分离出来?
EN

Stack Overflow用户
提问于 2012-08-02 19:17:19
回答 2查看 87关注 0票数 0

我有一个UITableView,其中填充了来自互联网的已解析的XML元素。

一切正常,但我想将解析XLM元素的代码与负责填充此UITableViewUIViewController分开。

我尝试过对UIViewController进行子类化,但它似乎导致了许多耦合问题。

分离这个XML异步解析器代码,然后将其结果提供给包含UITableViewUIViewController的最佳方法是什么?

我不太理解委托,但这是可行的方法吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-02 19:41:51

编写一个处理解析的对象,在视图控制器中创建它的一个实例,然后调用它来加载数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@protocol SomeXMLParserHandler <NSObject>

- (void) handleData:(NSArray *)data;

@end

@interface SomeXMLParser : NSObject<NSXMLParserDelegate>

@property (strong, nonatomic) id<SomeXMLParserHandler> handler;

- (void) parseSomeXMLFromURL:(NSString *)url
            andPassToHandler:(id<SomeXMLParserHandler>)handler;

@end

在本例中,SomeXMLParser将做所有繁重的工作,并在完成后将数组传递回SomeXMLParserHandler。所以在你的视图控制器中,你可以做类似这样的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void) viewDidLoad
{
    [super viewDidLoad];

    SomeXMLParser *parser = [[SomeXMLParser alloc] init];

    [parser parseSomeXMLFromURL:@"http://someurl"
               andPassToHandler:self];
}

- (void) handleData:(NSArray *)data
{
    self.tableViewData = data;
}

这不是正常工作的代码,但它应该让您朝着正确的方向前进,特别是如果您已经让解析代码正常工作的话。另外,如果你的into块...一旦解析完成,你可以用块引用替换协议来做这项工作。

票数 1
EN

Stack Overflow用户

发布于 2012-08-02 19:33:55

您的模型应该处理数据的获取和解析,然后当它完成时,您可以使用NSNotificationCenter通知视图控制器新数据。

例如,您可以执行以下操作:

在您的模型中,定义一些MyModelDidFinishFetchingDataNotification,并在完成获取和解析数据时调用它

然后,在创建viewController时,将其作为观察者添加到模型通知中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (id)init
{
    self = [super init];
    if (self) {
        //
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(handleMyModelDidFinishFetchingDataNotification:)
                                                     name:MyModelDidFinishFetchingDataNotification
                                                   object:nil];
    }
    return self;
}  

在viewDidLoad中,告诉您的模型获取数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.myModel fetchNewDataFromServer];
}  

实现处理新数据的方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)handleMyModelDidFinishFetchingDataNotification:(NSNotification *)not
{
    NSArray *newData = [[not userInfo] objectForKey:@"someNewData"];

    // set the new data to the viewController data property
    self.myData = newData

    // update the UI
    [self.tableView reloadData];
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11784299

复制
相关文章
埋点统计~~从UITableView数据曝光说起
金融产品中为了配合好运营 做好产品的营销和推广,往往在产品中加入一些埋点统计。这些统计常见的有产品曝光率 数据的转化率 用户的行为操作,市面上有很多平台做这些数据采集一键式的集成来辅助做好用户行为分析。然鹅这些粗粒度的统计产品往往不能全面很好的辅助互联网公司做好用户采集和建立用户画像模型,因此有条件的公司内部会做自己的用户行为埋点统计,打造一套自己的用户行为分析平台……
大话swift
2021/01/18
1.4K0
如何将数据从MySQL/MongoDB中迁移至云开发数据库
云开发为我们提供了一个 JSON 文档型数据库(NoSQL),并集成了增删改查等 API,操作方便,简单易懂。并且相比传统数据库而言它具有高性能的数据库读写服务,可以直接在客户端对数据进行读写,无需关心数据库实例和环境。云开发官方文档:https://cloud.tencent.com/product/tcbfrom=12763
腾讯云开发TCB
2020/06/17
3.8K0
如何将数据从MySQL/MongoDB中迁移至云开发数据库
UITableView在Flutter中是什么?
前面我们学习了文本、图片和按钮这些基本元素,这些基本元素需要进行排列组合,才能构成我们看到的UI视图。那么,当这些基本元素的排列布局超过屏幕显示尺寸(即超过一屏)时,我们就需要引入列表控件来展示视图的完整内容,并根据元素的多少进行自适应滚动展示。
拉维
2019/08/12
5.6K0
UITableView在Flutter中是什么?
HEIST攻击解析 | 从HTTPS加密数据中获取明文
*本文原创作者:Sunnieli,本文属FreeBuf原创奖励计划,未经许可禁止转载 在Black Hat 2016大会上,两名比利时的安全研究人员展示了他们今年的研究成果。他们发现了一个WEB攻击方式可以绕过HTTPS加密得到明文信息,他们把这种攻击方式叫做HEIST攻击。HEIST的全称是Encrypted Information can be Stolen through TCP-Windows。 HEIST攻击的利用条件十分简单,只需要几行简单的javascript代码即可,并且无需借助中间人攻击。
FB客服
2018/02/08
3.3K0
HEIST攻击解析 | 从HTTPS加密数据中获取明文
iOS UITableView的使用
添加代理 UITableViewDelegate,UITableViewDataSource
码客说
2019/10/22
8660
再简单说说UITableView中Cell的复用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/72457378
用户1451823
2018/09/13
1.1K0
再简单说说UITableView中Cell的复用
实用:如何将aop中的pointcut值从配置文件中读取
改造老项目,须要加一个aop来拦截所的web Controller请求做一些处理,由于老项目比较多,且包的命名也不统一,又不想每个项目都copy一份相同的代码,这样会导致后以后升级很麻烦,不利于维护。于是我们想做成一个统一的jar包来给各项目引用,这样每个项目只须要引用该jar,然后配置对应的切面值就可以了。
Bug开发工程师
2019/12/09
24K1
Python解析京东评论到数据库中及从数据库中获取数据
解析京东评论到数据库中:0 import requests import json import pymysql def jd_data(cursor): url = 'https://cl
kenvie
2022/01/20
3K0
iOS中UITableView和UICollectionView的默认空态页
  项目中想实现空态页风格统一控制的效果,就封装了一个默认空态页,使用的技术点有:1 方法替换 ,2 给分类(Category)添加属性。   我们知道,扩展(extension)可以给类添加私有变量和方法。但是分类(Category)不可以,但是我们又想在原生的UITableView和UICollectionView上添加空态页,所以使用了黑科技runtime中提供的对象关联。objc_setAssociatedObject/objc_getAssociatedObject。   懒得说明了,具体看代码。
王大锤
2018/05/17
1K0
如何将SQLServer2005中的数据同步到Oracle中
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
深蓝studyzy
2022/06/16
3K0
优雅的使用UITableView
在我们iOS开发中UITableView几乎是所有App都会使用的一个UI控件,因为业务的需要,我们常常会注册多种Cell,然后在
会写bug的程序员
2020/06/06
9980
优雅的使用UITableView
iOS实现UITableViewDataSource与Controller的分离
在之前的项目中好多处用到了tableView,然而之前不懂得将代理方法实现分离,所以每在一处用到tableView就要在controller中写一遍UITableViewDataSource和UITableViewDelegate,实现tableView的基本功能中用到的tableViewDelegate的方法还算不太多,但是说到UITableViewDataSource,里面就那些固定的用法,每次都要写一遍,大大增加了代码的冗余度,虽然不吝啬体力多写几行代码,但是给人感觉不太好,接下来就来说一下怎么样将tableViewDataSource这个磨人的小妖精从controller中分离出来。
周希
2019/10/15
8960
去中心化身份如何将我们从元宇宙的数据监控中拯救出来?
在上一篇《元宇宙也存在数据被监控的风险吗?》中,我们提到元宇宙中依然存在数据监控的问题。想要解决此问题,则需要从道德层面与技术层面双管齐下。
本体Ontology
2022/08/31
7410
去中心化身份如何将我们从元宇宙的数据监控中拯救出来?
iOS UITableView 无数据占位图
在使用TableView的时候,经常会遇到一些无数据需要用到占位图的情况,所以就写一个控件来实现。 思路:使用UITableView Category来实现,由于占位图式样多种多样,所以控件就不用考虑很多情况,把占位图交给外部实现,控件内部只处理有数据和没有数据显示占位图即可。
赵哥窟
2019/01/28
1.5K0
UITableView基础1. UITableView的作用2. UITableView的常用属性3. tableView展示数据三部曲4. UITableViewStyleGrouped样式5. U
1. UITableView的作用 以垂直滚动方式显示数据列表。 UITableView 的两种内置样式:UITableViewStylePlain 和UITableViewStyleGrouped 。 tableView只是一个愚蠢的容器,只负责显示。显示的是什么自己完全不知道。 数据都是由dataSource提供。 要满足快速滚动,性能很重要 2. UITableView的常用属性 2.1 分割线属性 属性名称 作用 separatorStyle 分隔线样式 separatorColor 分隔线颜色
stanbai
2018/06/28
1K0
如何将SAP归档数据合并到数据湖中
SAP系统已经存在了几十年,与大多数本地(Hadoop)或基于云的(Google, Azure, AWS)数据湖不同。这就是为什么经常要存档大量SAP历史数据的原因。这带来了一个挑战——历史SAP归档解决方案以压缩格式将数据存储在基于文件的存储中,很难将这些数据集成到企业数据湖中,更不用说运行实时分析、机器学习算法或从中创造商业价值。
SNP数据迁移
2023/02/14
8930
如何将SAP归档数据合并到数据湖中
UITableView 组件化
在 iOS 开发中,UITableView 可以说是最常用的控件。几行代码,实现对应方法,系统就会给你呈现一个 60 帧无比流畅的列表,让初学者成就感爆棚。然而随着开发的深入,我们就会慢慢觉察到当前的 UITableView 实现会有这样或那样的问题。
猿_人类
2019/09/03
1.5K0
UITableView 组件化
互联网web直播点播平台EasyDSS如何将部分数据从t_lives表迁移到其他数据库?
之前我们讲过一些关于web直播点播平台EasyDSS数据迁移的内容,主要是对视频文件的迁移(EasyDSS如何将已存储的视频文件进行迁移),但是在部分用户的现场使用中,需要对某些数据库的某些内容进行迁移,这个在EasyDSS内也是可以完成的,本文我们就介绍一下。
TSINGSEE青犀视频
2021/04/09
8350
Swift 2.0 UItableView 的简单使用
在IOS开发中,UItableView 的使用真的是最常见最普通的了,现在在自学swift 今天也是这用Swift 写了写 UItableview的使用,还有一些经常出错的地方。下面我先把整个控制器的代理列出来,大家可以顺便看看 swift 是怎样遵守协议的。 import UIKit // 遵守两个协议 class HomeViewController: UIViewController ,UITableViewDelegate,UITableViewDataSource { override
Mr.RisingSun
2018/01/09
1.8K0
点击加载更多

相似问题

UITableView -从互联网加载数据

20

如何将数据从残缺的解析函数中分离出来?

20

直接从JSON解析到UITableView的数据

22

在UITableView中显示从解析中检索到的数据

40

如何将数据从多个列中分离出来并解析成不同的行(Oracle)

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文