(挖坑自己跳系列三)
在实现文件操作的时候我意识到了一个事实:由于NSURL是可支持的路径,很多文件的操作实际上可以扩充到网络上去,比如从网上下载一个文件、拿取一些数据……想到这里,埋藏在心中很久的愿望又开始蠢蠢欲动:写一个新闻客户端!
我有一个常看的新闻网站(不要问我是哪个,要FQ),官方客户端很难用,第三方广告满天飞,严重影响心情。所以当初开始学iOS的时候就把重做一个客户端的目标放在了首位。最开始的时候想得太简单,兴冲冲地开了个project,搞了两下TableView,然后发现……对于我这种从来只写底层代码,swift/OC语法都不会的人,做这个简直是异想天开好嘛!
折腾的过程中,为了拿到数据,还跑去下了Android的官方客户端反编译,find + grep出来了人家的数据接口地址(论一个爱折腾的程序员是怎么给自己挖坑的),返回的是XML数据,连蒙带猜试了试,可以用!不过后来做UI受挫(其实不止做UI,挫败感太大),就把那份东西闲置起来了。这两天突然想起来,现在我貌似感觉有点良好,何不捡起来继续写我的客户端?
因为UI我还一窍不通,不懂怎么调试,也不懂怎么把数据显示出来,为了避免到处打印的麻烦,我选择playground。这样也就是需要用原生库,这个很简单,搜一下就有了:NSXMLParserDelegate,还有好些源码,虽然大多是OC的。
问题是有源码,我依!然!看!不!懂!怎么用!每个教程都是扔了源码上来,可没人解释清楚到底怎么运行。我研究了好一阵,终于明白了大概的机制:
自己写一个类继承NSXMLParserDelegate,就叫它XmlReader吧;并且实现一些必须的callback函数,在XmlReader的Init中调用.parse()方法,最后在new XmlReader的时候就会自动完成整个parse了