- 博客(34)
- 资源 (63)
- 收藏
- 关注
原创 架构 框架 设计模式的理解
架构 :简单的说就是蓝图,是一种设计方案,就是将用户的需求抽象成不同的组件,并且能够描叙这些组件之间的通信和调用框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系架构,不同领域的软件项目有不同的框架,框架就是半成品,进行二次开发就可以就能实现软件系统设计模式:是一套被反复使用,多人知晓,经过分类编目的,代码设计经验的总结,他强调的是设计问题的解决框架不是架构 框架比
2015-12-31 23:15:30 647
原创 几种定位方式的总结
1 GPS定位:通过手机中的GPS模块获取位置2 基站定位:通过运营商的电信基站(2g,3g,4g等)进行定位3 混合定位 (也可以称作wifi定位) 就是GPS +基站+wifi的混合定位方式gps定位 优势 精度高,信息全,可获取经纬度,海拔高度,方向角度等信息 劣势 强依赖GPS卫星信号,在室内及城市楼宇,GPS定位会出现失败或偏移用作场合 :户外 骑行 运动 车载等系统上
2015-12-30 22:23:22 1305
原创 oc的Runtime
//runtime简称运行时。OC就是运行时机制对于C语言函数的调用在编译的时候会决定调用哪个函数。对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用 //在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错而对于C语言调用未实现的函数就会报错
2015-12-30 10:22:04 302
原创 iOS block3种传值方法
第一种 typedef void( ^SendText )( NSString *);第二种 @property (nonatomic,copy) void (^SendText)(NSString *);第三种-(id)initWithBlock:(void (^)(NSString *))sendText;
2015-12-30 09:46:13 412
原创 ios音乐和视频合成
#import #import "MBProgressHUD+MJ.h"@interface ViewController ()/** 用于播放 */@property (weak, nonatomic) IBOutlet UIImageView *imageView;@end@implementation ViewContr
2015-12-29 11:23:24 460
原创 跳转到wifi设置界面
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
2015-12-29 10:37:36 703
原创 ios捕捉奔溃日志
新建一个CatchCrash#import @interface CatchCrash : NSObjectvoid uncaughtExceptionHandler(NSException *exception);@end#import "CatchCrash.h"@imple
2015-12-29 10:01:44 545
原创 oc的日历提醒机制
- (IBAction)addEventClick:(UIButton *)sender { //需要导入EventKit.framework为了让提醒事项和日历事件能工作起来,你需要依赖于EventKit。你将也需要一个持久化的存储来保存备忘录项。因此,EventKit为你提供了这个:EKEventStore。一个EKEventStore允许你从用户日历数据库中更新、创建、编辑
2015-12-29 09:56:34 921
原创 swift元组类型
// let result = "\(name)的年龄是\(age)岁!" let result = "\(name)的年龄是\(age)岁" print(result) //元组的定义元组是oc种没有的数据类型,与数组类似都是表示一组数据的集合 var定义的元祖是可变元组 let定义的元组
2015-12-29 09:54:13 560
原创 swift的protocol
新建一个Protocol.swift文件 里面的内容 为 import Foundationprotocol ChangeTextDelegate{ func changeLableValue(newString:String) }class OtherVC: U
2015-12-29 09:52:57 385
原创 iOS的CALay详解
// Do any additional setup after loading the view, typically from a nib.// core Animation 是跨平台的,支持ios环境和Mac OS X环境学习核心动画之前,需要先理解CALay因为核心动画操作的不是UIView,而是CALay //CALay是核心动画的基础,可以做圆角,阴影
2015-12-27 21:36:48 997
原创 oc的kvc模式
// 我们一般通过调用set方法或属性的点语法来直接更改对象的状态,即对象的属性 kvc是一种简洁更改对象状态的方式,其使用方法是使用描叙对象需要更改的属性。kvc中的基本调用包括valueForKey和 setValue:ForKey以字符串的形式向对象发送消息使用下面的例子//@interface Card : NSObject//@property (nonatomic,
2015-12-27 21:33:29 413
原创 swift元组类型
//元组的定义元组是oc种没有的数据类型,与数组类似都是表示一组数据的集合 var定义的元祖是可变元组 let定义的元组是不可以变元组可变元组在创建之后可以添加和修改 删除其中的值 //元组特点 1:元组的长度任意 ,元组中的数据可以是不同的数据类型 //便利元组中元素的值的方法:1通过索引来取 2 通过一个间接变
2015-12-26 16:16:04 449
原创 ios音量振动条
@property (nonatomic,strong) CAReplicatorLayer *replicatorLayer;@property (nonatomic,strong) CALayer *layer;@property (nonatomic,strong) CABasicAnimation *basicAnimation;@end
2015-12-25 17:25:13 827
原创 oc根据颜色生成图片
- (UIImage *)createImageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0, 0, 1, 1); //图片尺寸 UIGraphicsBeginImageContext(rect.size); //填充画笔 CGContextRef context = UIGraphics
2015-12-25 15:18:36 2583
原创 iOS 的VFL知识详解
//[NSLayoutConstraint constraintsWithVisualFormat: options: metrics: *)#> views: *)#>]// 其中Format是VFL字符串例如 @"H:|-10-[view]-20-|"// opts枚举参数 // metrics是自定义的一个字典,这个字典里面的key可
2015-12-25 12:48:07 530
原创 swift网络请求的相关方法
import UIKitclass DownLocader: NSObject,NSURLSessionDownloadDelegate { var session: NSURLSession? override init() { super.init()
2015-12-25 12:36:10 444
原创 storyboard传值
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(nullableid)sender{ SecondViewController *vc=segue.destinationViewController; vc.text=^(NSString *te){
2015-12-25 12:29:18 382
原创 ios程序中的内存分配 栈区堆区全局区
在计算机系统中,运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同。1 栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点时有限制,数据不灵活。[先进后出]栈空间分静态分配 和动态分配两种 静态分配是编译器完成的,比如自动变量(auto)的分配。
2015-12-24 22:03:59 756
原创 oc文件小结
//强调,不能因为pch文件方便,就把所有要引入的文件都放在pch中,如果太多会给系统造成负担,一定要确认几乎是系统都需要的头文件才在pch中导入//要解决NSLog的问题,可以通过宏定义的方式,进行转换 Debug=YES(1)表示应用处于调试状态,发布后debug就不存在了
2015-12-21 22:06:02 364
原创 UIApplication的小结
1 应用程序成为激活状态后,才可以与用户进行交互2 如果要做保存游戏状态之类操作,应该在注销激活方法中处理,因为用户会双击home键,打开任务栏,此时应用程序不会退出后台3 如果要做恢复游戏状态之类的操作,应该在成为激活方法中处理因为用户可能从任务栏中返回的4 如果应用程序运行过程中,内存或其他原因,程序被系统强行退出后,会调用Terminate方法 开发者可以再次记录应用状态,以便改
2015-12-21 21:56:04 351
原创 增长黑客,创业公司的用户与收入增长秘籍
“增长黑客”这一概念近年来新奇遇美国互联网创业圈,最早是由互联网创业者Sean Ellis提出。增长黑客是介于技术和市场之间的新型团队角色,主要依靠技术和数量的力量来达成各种营销目标,而非传统意义上靠钱来获取用户的市场推广角色。他们能从单线思维者时常忽略的角度和难以企及的高度通盘考虑影响产品发展的因素,提出基于产品本身的改造和开发策略,以切实的依据,低廉的成本,可控的风险来达成用户增长,活跃度
2015-12-20 20:34:31 586
原创 MB添加自定义图片和文字
1 显示文字改变显示文字的位置 //显示提示信息 UIView *view = [[UIApplicationsharedApplication].delegatewindow]; MBProgressHUD *hud = [MBProgressHUDshowHUDAddedTo:viewanimated:YES]; hud.u
2015-12-20 18:35:38 931
原创 UIPickView实现UIdatepicker效果
#import "MainViewController.h"// 起始年数#define kStartYear 1980// 总年数#define kYearCount 200@interface MainViewController ()// 定义数据属性// 1. 年数组@property
2015-12-20 16:13:58 621
原创 oc照片库图片的选择处理
#import "MainViewController.h"#define kImageFileName @"image.png"@interface MainViewController ()@property (weak, nonatomic) UIButton *button;@end
2015-12-20 15:54:55 1463
原创 oc字符串输入
UITextView *textView = [[UITextViewalloc]initWithFrame:self.view.bounds]; [self.viewaddSubview:textView]; self.textView = textView; [self.textViewsetFont:[UIFontsystemFont
2015-12-20 15:26:30 708
原创 控制键盘的输入
1 新建一个工具类#import @class KeyboardTool;typedef enum{ kKeyboardToolButtonPrev = 0, kKeyboardToolButtonNext, kKeyboardToolButtonDone} KeyboardToolBut
2015-12-20 15:14:45 505
原创 iOS 解决多个模拟器命令
1.关闭xcode2.终端输入 sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService输入你的电脑密码3.终端输入 rm -rf ~/Library/Developer/CoreSimulator/Devices
2015-12-18 22:09:22 654
原创 oc 一些常用命令
如何通过atos命令获取64位错误地址的调用栈对于使用arm64的iOS应用,要获取64位错误地址的调用栈,可以这么写:用这样的命令来打印调用符号atos -o yeemiao.app.dSYM/Contents/Resources/DWARF/yeemiao -l 0x429496729616x 0x4294967c8faaatos -o XXX.ap
2015-12-18 22:04:24 3331
转载 手机游戏如何运用AARRR模型进行推广运营?
日前,业内人士表示,很多移动开发者只注意应用的下载量和激活量,于是很多应用出现了“重推广、轻运营”,甚至是“有推广、无运营”的情况。而这种情况不乏在手游领域出现,那么手机游戏又应该如何运用AARRR模型进行推广运营? AARRR是Acquisition、Activation、Retention、Revenue、Refer,这个五个单词的所写,分别对应这一款移动应用生命周期中的5
2015-12-17 21:33:07 840
原创 IOS查看UUID
1.查看 xx.app 文件的 UUID,terminal中输入命令 :dwarfdump --uuid xx.app/xx (xx代表你的项目名)2.查看 xx.app.dSYM文件的 UUID ,在 terminal 中输入命令:dwarfdump --uuid xx.app.dSYM 3.crash 文件内第一行 Incident Iden
2015-12-17 11:00:17 1103
原创 oc一些常见问题解决
1.__NSCFString containsString:]: unrecognized selector sent to instance 的解决方案1 在IOS7上存在 IOS8上没有 第一个解决方法是,把NSCFString转换为 NSString,使用最粗暴的方法[[request URL] absoluteString]//第二种方法找NSString是
2015-12-15 22:36:22 1838
原创 swift注意点
//原生的Swift protocol里没有可选项,所有定义的方法都是必须实现的。如果我们想要像Objective-C里那样定义可选的接口方法,就需要将接口本身定义为Objective-C的,也即在protocol定义之前加上@objc。另外和Objective-C中的@optional不同,我们使用没有@符号的关键字optional来定义可选方法//swift中的
2015-12-05 19:14:44 383
UITabbarController.zip
2020-12-17
SSZipArchive.zip
2020-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人