UberDemo项目总结

Uber打车app项目的功能模块主要有一下几点Demo

1 首页启动播放AV效果
2 注册流程
2.1 选取国家,回调国家编号,保存在CoreData持久化
2.2 上传用户头像,用户信息
2.3 手机端发送验证码
2.4 完成注册上传用户信息到Bmob上面
2.5 绑定银行卡,支付宝,银联,京东等信息(继承sdk)
3 登陆流程
4 主页用户定位
5 侧边栏效果实现
6 主页用户信息设置
7 集成百度sdk
8 实时更新当前车辆的位置信息
9 付款流程
10 搜索目标位置

效果图如下图所示:

  1. 首页启动效果
Uber1.gif

在整个过程中处理bug的相关日志

1 开发自定义的xib的时候需要先关联class,但是xib关联方式和storyboard的关联方式是不一样的。

屏幕快照 2016-03-11 10.49.47.png

2 还有个问题就是在实例化一个view的时候,出现了这样的错误。
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "GuidPage" nib but the view outlet was not set
然后按照视频教程的操作说明看了下,发现了没有关联Reference Outlet和view之间的关联。
屏幕快照 2016-03-11 11.13.37.png

3 在跟着视频做视图的时候,有一个地方不注意的话就会很麻烦,在做uberDemo加载logo的视图中,由于没有将View的底色调制黑色以至于显示出来的logo都是以白色为底色。这个问题困扰了我一个下午,在晚上的时候终于搞出来了。
4 还有一个地方就是在加载图层layer是有两个方法:let playerLayer = AVPlayerLayer(player: player)let playerLayer = AVPlayerLayer(layer: player)进过查看底层代码发现根本就没有后者这个方法体。
5 对代理模型的理解还是不够,导致了每次使用代理模型的时候总是需要上网查看相关资料,
谁要传值谁建代理,接收方实现该代理,并且接收方还要绑定该代理。

解决办法:

BController要传值给AController,
首先,在BController类中建立protocol BDelegate,并且发布这个代理(也就是定义这么一个变量)var delegate: SelectCountryDelegate?
其次,要在接收方AController中实现该代理和绑定该代理。从哪个方法跳转到BController中

  class RegisterPage: FxBasePage,SelectCountryDelegate{
     
      @IBAction func doSelectCountry(){
        let page = SelectCountry()
        page.delegate = self
        let navPage = UINavigationController(rootViewController: page)
        self.presentViewController(navPage, animated: true, completion: nil)
    }

最后,就是传值操作了,在BController中

        let country = datas[indexPath.row]
        print(FxString.getTheLocalAreaCode(country.code))
        delegate!.setCountryCodeAndFlag(FxString.getTheLocalAreaCode(country.code), flag: "\(country.code).png")

6 在集成银联sdk的时候,出现了问题。问题在于没有按照人家给的sdk部署文档去做,少配置了一个参数导致的。
在工程的Build Settings中找到Other Linker Flags中添加-ObjC宏
7 上午来单位后仔细阅读了银联的SDK配置文件,将周日的那个bug给搞定了。原因就是因为没有配置Other Linker Flags在工程的Build Settings中找到Other Linker Flags中添加-ObjC宏
8 侧边栏的滑动效果需要使用第三方的控件来进行处理。这里我们可以去github上面找一些第三方的控件来满足我们的要求。KGFloatingDrawer
其中可能有一些地方是不太满足我们的要求,因此需要我们对第三方控件进行调整。

public class KGDrawerSpringAnimator: NSObject {
    //缩放比例
    let kKGCenterViewDestinationScale:CGFloat = 1.0

9 处理tableViewCell的cell时候,需要改变cell的背景色的问题:

        cell.contentView.backgroundColor = UIColor.blackColor()
        cell.textLabel?.text = payInfo.name
        cell.textLabel?.textColor = UIColor.whiteColor()
        cell.textLabel?.backgroundColor = UIColor.blackColor()
        cell.imageView?.image = UIImage(named: payInfo.icon)
        cell.accessoryType = .None

10 还有一个问题就是imageView在建立约束的时候,不能够针对其所在容器的尺寸进行建立,这个问题我猜有可能是imageView不是一个view的缘故,针对这个问题,需要在创建一个view底层+imageView+textfield。


屏幕快照 2016-03-16 10.37.05.png

11 这个问题处理完以后,还有一个问题就是因为有多个输入框的自动布局的bug,没有办法让他们根据屏幕的宽度自动调整他们之间的间距,这里想到了一个办法,就是将这个4个view底层在嵌入到一个大的view中去,这个可是让4个view以这个大的view标准,然后这个大的view来去自适应我们的屏幕宽度。
12 自定义ScrollView的概念,加入百度地图SDK
13 利用Cocoapods加入第三方控件百度地图SDK,Alamofire
14 在使用百度地图SDK的时候,没有问题,但是引入时系统就报错了

Release-iphonesimulator/Pods.framework/Pods(Pods_vers.o)) was built for newer iOS version (8.4) than being linked (8.0)
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_BMKMapManager", referenced from:
      Uber.AppDelegate.addMapPage (Uber.AppDelegate)() -> () in AppDelegate.o
      l_get_field_types_AppDelegate in AppDelegate.o
  "_OBJC_CLASS_$_BMKMapView", referenced from:
      Uber.HomeCenterPage.viewDidLoad (Uber.HomeCenterPage)() -> () in HomeCenterPage.o
      l_get_field_types_HomeCenterPage in HomeCenterPage.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

15 重新创建一个项目是可以通过Cocoapods导入百度地图sdk的并且能够正常显示出来,那么问题来了就是因为在之前通过手动导入了一些银联的sdk包然后修改了里面的一些属性信息导致了这样的错误。
16 解决办法我想重新从git上面下载我们的代码,然后重新手动导入。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容