自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

里皮同学的博客

记录一下学习中遇到的一些问题、经验、总结等

  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 iOS 网络GIF加载第三方库对比

iOS 网络GIF加载第三方库对比SDWebImage库自带的gif图加载方法UIImageView *sdimageView = [[UIImageView alloc]init]; [sdimageView sd_internalSetImageWithURL:[NSURL URLWithString:@"https://i.pinimg.com/originals/07/44/38/074438e7c75034df2dcf37ba1057803e.gif"] placeholderImag

2022-02-10 11:40:43 1771

原创 swift中判空到底用.count 还是 .isEmpty

swift 中.count 方法时间复杂度到底是多少swift中有时能看到用 xxx.count == 0 这种方式,判断一个字符串/字典/数组是否为空,也能用 xxx.isEmpty 属性是否为空,网上有人认为要用isEmpty而不是count来判断,因为后者需要遍历;有博客 https://www.jianshu.com/p/77f8d6563596 认为 ”字符串是字符的集合,也遵循了RandomAccessCollection 协议“,则两者时间复杂度都为1,都可以用。从苹果官方文档来看,

2022-02-11 14:55:23 3079

原创 Cocoa Touch基础

Cocoa Touch主要特点:基于objective-c语言、动态运行时Core Animation:基于组合独立图层Core Audio:播放、处理和录制音频Core Data:面向对象的数据管理解决方案Cocoa Touch主要框架音频和视频:Core Audio、Open AL、Media Library、AV Foundation数据管理:Core Data、SQLite图形和动画:Core Animation、OpenGL ES、Quartz 2D网络:Bonjour

2020-09-10 15:37:12 438

原创 iOS原生 Native和Javascript交互

Native中运行JavaScript代码通过JSContext对象(类似于JavaScript运行环境),执行js代码(从js文件中获取的NSString)//获取js文件路径NSString *path = [[NSBundle mainBundle] pathForResource:"main" ofType:@"js"];//读取js数据NSData *jsData =[[NSData alloc]initWithContentsOfFile:path];//从data解码成strin

2020-09-10 14:55:12 417

原创 MJRefresh - UITableView的刷新/加载更多

对于UITabView控件的使用场景来说,常见的应用是初始化时拿到部分数据并展示,上划到底时加载下一页数据,下拉刷新全部数据(重新显示开头的第一页),本次记录了MJRefresh的基本使用方式。1. 使用Pod导入MJRefreshpod 'MJRefresh'2. 项目中给UITabview加上头/尾 self.myRolesTableView.mj_footer=[M...

2018-09-13 15:37:52 361

原创 UITableView多选/单选

UITableView核心的思路就是维护一个数组,记录所有选中的cell的indexpath,使用时,根据这个数组来取出datasource中对应的数据项。核心要点1. tabview的cell的点击事件- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)ind...

2018-09-13 13:48:01 1008

原创 UIApplicationDelegate和UIViewController消息调用时间

UIViewController生命周期各函数调用时间 init 只有相关数据的初始化loadview 只初始化viewviewDidLoad 创建一些附加的view和控件,可能会被调用多次viewDidAppear 用于显示后,在切换动画后需要进行的操作viewWillAppear 在view被添加到superview之前,在切换动画之前调用,例如键盘弹出,特殊的过程动画(状态条...

2018-07-26 16:44:10 262

原创 mac os 10.13下安装配置cocoapods并在xcode中使用

关闭SIP保护10.3.4版本下macOS开启了SIP保护,即便是root用户也不能修改系统目录中的文件,所以要安装cocoapods,需要先关闭这个服务方法如下 1. 重启电脑按住command+R进入recovery模式 2. 进入实用工具-终端 3. 输入命令 csrutil disable 4. 输入命令 reboot 重启安装ruby更换源打开te...

2018-07-26 16:43:17 1935

原创 利用Mahout编写推荐程序

Mahout推荐程序的编写以及相关知识总结1. 什么是推荐程序从日常的情景来看,就是对用户日常的行为进行分析,从而预测/判断他们可能的下一步动作或者喜欢的物品,这一操作大体上分为两类,一种是找到与之相似的用户,根据相似用户的行为进行推荐;另一种则是观察其他用户的行为和偏好,找到物品之间的相似性,从而进行推荐。实际上Mahout的推荐程序中应用最广的也就是这两类:基于用户(user-base

2018-01-30 14:13:57 430

原创 linux使用IDEA进行Mahout配置

在网上找了很多关于IDEA上利用maven配置mahout开发环境的,但都是使用pom.xml进行配置,其实不需要这么麻烦,如果在linux上已经安装配置好了本地的mahout,直接导入jar包即可。前置条件: 1. 安装好JDK+IDEA集成开发环境 2. 安装配置maven 3. 安装配置mahout 4. 安装Hadoop伪分布式开发mahout程序:使用IDE

2018-01-17 11:05:17 1448

原创 ubuntu下Hadoop+mahout+spark安装配置

一、在Ubuntu下创建Hadoop组和hadoop用户1、创建hadoop用户组2、创建hadoop用户 3、为hadoop用户添加权限(sudoers文件位于/etc文件夹下) 二、重启,用新增加的hadoop用户hdp登录Ubuntu系统三、安装sshsudo apt-get install openssh-server安装完成后,启

2017-10-25 16:31:22 409

文字编辑版人月神话

史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。 过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。他们中大多数开发出了可运行的系统——不过,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中。表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢。对问题的麻烦程度,每个人似乎都会感到惊讶,并且很难看清问题的本质。不过,如果我们想解决问题,就必须试图先去理解它。

2018-05-21

超声声速测量

超声声速测量

2014-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除