美文网首页百思不得姐APP挖掘专题
百思不得姐数据挖掘第一篇

百思不得姐数据挖掘第一篇

作者: 君赏 | 来源:发表于2016-11-04 11:50 被阅读103次

这是此文档的第一篇文章,写在之前要说的话。里面设计的技术点可能有些新人不是太了解,我只会说我遇到的难点和思路,文章也是想到那里写到那里。

初始化工程,我们采用Swift进行开发,我们选择基于iOS8.0以上进行开发,只支持iPhone。

获取资源文件和图片

我们利用电脑的iTunes下载最新的百思不得姐的应用,我下载的是4.5版本的应用,后续的版本可能有一些不同。

修改百思不得姐 4.5.ipa名字改成百思不得姐 4.5.zip点击弹出框使用zip的后缀名称。

我们使用Mac自带的解压或者其他解压的工具解压百思不得姐 4.5.zip

我们打开解压出来的文件包,前往~/Payload/MyWeiboJingXuan目录。

MyWeiboJingXuan这个可以点击右键,点击查看包内容进入。

我们删除没用的签名文件夹_CodeSignaturenib文件,

我们把留下来的资源文件放在我新建的工程里面。修改我们的初始化工程和文件所在文件包的位置。

初始化工程文件包下载地址下载地址

启动页面

启动页面启动页面

虽然我们项目设置的启动图,但都是一闪而过。我们需要做一些展示广告事情什么的,就需要单独的做一个界面出来。

我们在Main.stroyboard里面新建一个UIViewController的界面,新建一个类BLaunchViewController。让我们新建的界面类指向BLaunchViewController

因为要显示启动的图片,我们选择添加UIImageView控件到BLaunchViewController界面上去,设置约束占整个界面。

约束的图片约束的图片

我们新建一个UIImageView的变量名称叫做launchImageView连接到BLaunchViewController类里面。

我们只支持iOS8.0以上,只支持iPhone,所以只支持下面的机型。

iPhone4s/iPhone5/iPhone5c/iPhone5s/iPhone se/iPhone6/iPhone plus/iPhone7/iPhone7 plus

所以我们支持的分辨率有640x960/640x1136/750x1334/1242x2208

一个不好的解决方法:

因为现在启动图都在启动图包里面存储,暂时没找到办法获取到里面的图片。我们只好提取需要尺寸的图片单独拿出来。

如果有其他获取启动包里面图片可以告诉我。我觉得这个方法严重造成安装包的臃肿。

我们在BLaunchViewController里面新增获取当前要显示图片的获取方法getLaunchImage.

因为我之前命名按照屏幕的分辨率+@屏幕的倍数,我们就需要方法获取屏幕的尺寸和倍数就可以合成图片的名称。

我们定义常量KAppScreenWidth标识屏幕的宽度,定义常量KAppScreenHeight标识屏幕的高度,定义常量KappScreenScale标识屏幕的倍数。

因为是CGFloat类型,可能造成因为小数点影响图片名字查找我们同意用Int()函数强行换成Int类型的。

/// 获取启动的图片
    ///
    /// - returns: 可能因为图片的问题 获取不到返回为nil
    func getLaunchImage() -> UIImage? {
        let launchImageName = "\(Int(KAppScreenWidth))x\(Int(KAppScreenHeight))@\(Int(KappScreenScale))"
        return UIImage(named: launchImageName)
    }

我们在BLaunchViewControllerviewDidLoad()方法里面给launchImageView赋值。

我们是不是迫不及待的查看效果,我们run一下。运行在iPhone5s 8.4上面

结果如下:

显示结果显示结果

为啥是这个样子

崩溃崩溃

按照自己的逻辑应该不回错的,运行出不来,一头雾水。

我觉得可能图片没有获取到,我们断点看一下生成图片的名称。

断点调试断点调试

看到这里我们霍然开朗,前面只是屏幕的尺寸不是分辨率。并且还缺少x这个字段。我们修改一下代码。

let launchImageName = "\(Int(KAppScreenWidth * KappScreenScale))x\(Int(KAppScreenHeight * KappScreenScale))@\(Int(KappScreenScale))x"

我们继续的测试运行。

ಥ_ಥಥ_ಥ

还是没有出现。

我们使用

po UIImage(named: launchImageName)

打印出来nil代表没有找到,我们打印一下图片的名字。

po launchImageName

"640x1136@2x"

这样都获取不到数据,是不是因为图片名称后面没有后缀?我们使用expression重新设置图片的名称。

expression launchImageName = "640x1136@2x.png"

我们再次的获取图片,还是获取不到。

我们查看一下名字 发现系统已经自动把后缀去掉 只剩下分辨率作为图片的名称。

我们再次利用expression修改名字。

(lldb) expression launchImageName = "640x1136"
(lldb) po UIImage(named: launchImageName)

发现这次有结果了。

图片图片

既然这样可以,我们修改一下代码

let launchImageName = "\(Int(KAppScreenWidth * KappScreenScale))x\(Int(KAppScreenHeight * KappScreenScale))"

再次运行。

运行成功运行成功

本章教程结束 下一章继续。

本次版本下载版本下载

相关文章

  • 百思不得姐数据挖掘第一篇

    这是此文档的第一篇文章,写在之前要说的话。里面设计的技术点可能有些新人不是太了解,我只会说我遇到的难点和思路,文章...

  • 百思不得姐数据挖掘第三篇

    播放视频的界面现在只剩下视频的功能了,对于这种播放视频的应该属于功能块。我们可以单独把这个功能提取出来。 我们新建...

  • 百思不得姐数据挖掘第二篇

    首先进入的是启动的界面,我们已经在上一篇做好了。第一次启动之后会出现一个宣传的视频,是下面的界面。 我们使用Mar...

  • 百思不得姐

    文/华衣 有一对可爱的蚂蚁花。 文静和淘气。 它们一起玩耍,一起寻找食物,彼此很要好。甚至相信它们的友谊会长久。 ...

  • 百思不得姐

    最近几个月,几乎天天都在简书遨游。一边欣赏着各位老师和友友们的心得佳作,一边抒发一下内心的所思所想,吸收是为了更好...

  • 源码推荐:仿《百思不得姐》项目 简易的瀑布流布局

    源码推荐:仿《百思不得姐》项目 简易的瀑布流布局 源码推荐:仿《百思不得姐》项目 简易的瀑布流布局

  • Time Profile of Xcode 9 Instrume

    前言: 之前使用Time Profile一直百思不得骑姐. 使用timeprofile分析出来的全是16进制数据....

  • 仿百思不得姐

    使用swift4.0 mvvm仿写的百思不得姐, 思路上按照小码哥OC版仿做, 易于理解适合swift初学者学习U...

  • 百思不得其姐!

    我偏不信邪! 1,他妈的T我又不行 2,他妈的找他私聊也不行 3,他妈的找他群更加不行不行 4,他妈的大家不聊闭嘴...

  • 项目实战 百思不得姐

    01 项目界面框架搭 https://www.jianshu.com/p/71996f9e4048 02 父子控制...

网友评论

    本文标题:百思不得姐数据挖掘第一篇

    本文链接:https://www.haomeiwen.com/subject/fyciuttx.html