iOS_OC
文章平均质量分 59
dong_vip
这个作者很懒,什么都没留下…
展开
-
iOS 安装包瘦身
缩减iOS安装包大小是很多中大型APP都要考虑的问题,一般首先会对资源文件进行处理,压缩图片和音频资源,去除不必要的资源。这些资源优化做完后,我们还可以尝试对可执行文件进行瘦身,项目越大,可执行文件占用的体积越大,又因为AppStore会对可执行文件加密,导致可执行文件的压缩率低,压缩后可执行文件占整个APP安装包的体积比例大约有80%~90%,还是挺值得优化的。1 安装包组成谈到 Ap...原创 2019-08-02 16:14:08 · 323 阅读 · 0 评论 -
UIImage高斯模糊
- (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur{ if (!image) { return nil; } if (blur 1.f) { blur = 0.3f; } int boxSize = (int)(blur原创 2016-03-31 16:11:02 · 675 阅读 · 2 评论 -
UIWebView + cookie
UIWebView *webView = [[UIWebView alloc] init]; webView.scrollView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0); webView.frame = self.view.bounds; [self.view addSubview:webView]; webVi原创 2016-03-31 16:09:30 · 357 阅读 · 0 评论 -
ios实现长时间后台运行
对于ios7,苹果支持几种后台运行模式,backgroundTask,voip,后台播放音乐等,具体看官方文档就好。本文介绍依靠音乐播放来实现#import #import @interface AllRuning : NSObject@property (nonatomic, strong) AVAudioPlayer *myBackMusic;+ (instancetype)sh原创 2016-03-31 16:06:18 · 489 阅读 · 2 评论 -
UIButton
UIButton *titleButton = [[UIButton alloc] init]; titleButton.width = 150; titleButton.height = 30; NSString *name = [AccountTool account].name; [titleButton setTitle:name ? name : @"首页原创 2016-03-31 16:04:59 · 241 阅读 · 0 评论 -
NSURLSession断点续传
1 对 NSURLSesiion 的基本认识 NSURLSesiion是苹果在iOS7推出的一个类,它具备了NSURLConnection所具备的方法,同时也比它更强大。苹果推出它的目的大有取代NSURLConnection的趋势或者目的。2 实现原理3 代理方法/* Sent when a download task that has completed原创 2016-01-15 14:50:29 · 300 阅读 · 0 评论 -
设置cell间距
// 1 设置contentInset系统基础上self.tableView.contentInset = UIEdgeInsetsMake(CellPlaceHeight, 0, 0, 0);// 2 cell 重写方法- (void)setFrame:(CGRect)frame{ frame.origin.y += 10; [super setFrame:原创 2016-01-13 16:02:36 · 442 阅读 · 0 评论 -
Transform执行动画
1 动画执行完回原位,建议使用transform原创 2016-01-11 17:36:56 · 481 阅读 · 0 评论 -
UI控件监听
1、delegate2、通知3、target原创 2016-01-11 16:22:01 · 256 阅读 · 0 评论 -
There was an internal API error.
错误原因:把Product Name作为程序名称,程序名称错乱解决方法:检查Product Name, 不要包含中文以及特殊字符。在info.plist中新增Bundle display name:我的程序名称。程序名称改为英文,Product Name也改为一样的。 ------------------------当我们改了工程的名称之后,运行程序时,提示找不到app原创 2015-12-25 10:14:05 · 558 阅读 · 0 评论 -
重新设置系统内部属性
重新设置系统内部属性,新属性的性质应提前配置// 2 更换系统自带的 tabbar KVC可替换可读属性 CustomnTabBar *customnTabbar = [[CustomnTabBar alloc] init]; customnTabbar.delegate = self; // 设置代理要放在 KVC 方法之前 [self setValue:custom原创 2016-01-09 17:39:42 · 289 阅读 · 0 评论 -
多控制器
如果发现控制器的View还在,但是view上面的数据不显示,极大可能是因为:控制器为局部变量,提前销毁了,需要创建强引用#import "HMViewController.h"#import "HMOneViewController.h"#import "HMTwoViewController.h"#import "HMThreeViewController.h"@interface原创 2016-01-09 16:52:54 · 275 阅读 · 0 评论 -
颜色分类
像素有自己的颜色 12bit颜色:#f 0 0 24bit颜色:#ff 00 00 RGBA 带有透明度 32bit颜色: #ff 00 00 00原创 2016-01-08 16:51:47 · 346 阅读 · 0 评论 -
坐标系转换 iOS
以下两种方式 等价CGRect newFrame = [view convertRect:view.bounds toView:window];CGRect newFrame = [view.superview convertRect:view.frame fromView:window];CGRect newFrame = [参数一 convertRect:参数二 toView:参数原创 2016-01-08 16:35:15 · 364 阅读 · 0 评论 -
跳转到wifi设置页面 iOS
1、 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];2、targets ---info 添加 URL Schemes 为 prefs的url原创 2015-12-25 14:34:30 · 1411 阅读 · 0 评论 -
UItableView批量删除
具体实现:// // CloViewController.m // MuTableViewTest // // Created by Lin on 15-12-16. // Copyright © 2015年 lcd. All rights reserved. // #import "MyViewController.h" @i原创 2015-12-16 16:00:59 · 655 阅读 · 0 评论 -
cookie
// 移除cookie-(void)removeCookies{ NSData *cookieData = [[NSUserDefaults standardUserDefaults]objectForKey:SESSION_COOKIE]; NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookie原创 2016-03-12 16:52:46 · 317 阅读 · 0 评论 -
RunLoop
一 概念 1 运行循环,事件驱动 UIApplicationMain()会启动一个RunLoop; 2 BOOL runing = YES; do {} while (runing); 3 iOS中有两套API { NSRunLoop (Foundation) OC语法 CFRunLoopRef (CoreFoundation原创 2016-04-14 18:05:45 · 447 阅读 · 0 评论 -
xcode三方插件路径
~/资源库/Application Support/Developer/Shared/Xcode/Plug-ins原创 2019-03-01 17:15:17 · 232 阅读 · 0 评论 -
iOS四位版本号
1 修改.plist 文件, 添加key值2 添加代码#define SYS_CLIENTVER [[[NSBundle mainBundle] infoDictionary] objectForKey:@"sys-clientVersion"]//eg:公共参数+ (NSDictionary *)addCommonParameters:(NSDictionary*)dic{ //给所有接口,添...原创 2018-02-28 14:47:49 · 2575 阅读 · 0 评论 -
GIT for mac
GIT的基本使用一 简介git是一款开源的分布式版本控制工具二 起源1 作者Linux之父: Linus Benndict Torvalds2 辅助Linus内核的开发三 现状1 开源项目转移动git四 与SVN对比1 速度: git速度远远比svn块2 svn集中式, git分布式3 svn使用分支比较笨重,git可以有无限个分支4 svn必须联网原创 2017-11-28 16:41:47 · 685 阅读 · 0 评论 -
友盟分享错误码
错误码switch (error.code) { case UMSocialPlatformErrorType_Unknow: result = @"未知错误"; break; case UMSocialPlatformErrorType_NotSup原创 2016-11-04 14:04:49 · 12461 阅读 · 0 评论 -
苹果原生推送
一 生成 pem 文件pem文件是服务器向苹果服务器做推送时候需要的文件,主要是做服务器的小伙伴们要用,下面介绍一下pem文件的生成。打开KeychainAccess,在Certificates里面找到上篇文章中介绍的包含推送的证书。分别将certificate和privatekey导出得到.p12文件。例如:AppleDevelopment Push Services > Exp原创 2016-09-08 10:38:22 · 440 阅读 · 0 评论 -
关于iOS远程推送的那些事
关于iOS远程推送的那些事iOS是怎么实现的: 1. 由App向iOS设备发送一个注册通知 2. iOS向APNs远程推送服务器发送App的Bundle Id和设备的UDID 3. APNs根据设备的UDID和App的Bundle Id生成deviceToken再发回给App 4. App再将deviceToken发送给远程推送服务器(商家自己的服务器), 由服务器保存在数据库中 5原创 2016-04-21 23:30:45 · 613 阅读 · 0 评论 -
iOS中 KVC\KVO和通知三者之间的小结
KVC 可以改变系统内 readonly 的属性setValue: forKeysetValue: forKeyPath //forKeyPath包含了forKey的功能,以后使用forKeyPath就可以了//forKeyPath中可以利用.运算符, 就可以一层一层往下查找对象的属性原创 2016-01-09 14:32:43 · 542 阅读 · 0 评论 -
Block总结
1 block 内部只访问,不会被释放的值( static __block 修饰的局部变量、全局变量 在内存中)原创 2016-01-19 11:11:57 · 505 阅读 · 0 评论 -
NSOperation
// 一 简介 // 对GCD 的封装 NSOperation 结合使用 NSOperationQueue // 使用NSOperation 子类的方式 { // 1 NSInvocationOperation // 2 NSBlockOperation // 3 自定义子类继承 NSOperation 实现内部相应的方法 }// 二 使用// 1 NSInvocationOper原创 2016-04-21 16:27:49 · 261 阅读 · 0 评论 -
单例模式
一 作用1 整个程序运行中,这个类只有一个实例二 实现#import "Person.h"@implementation Personstatic Person *_person;+ (instancetype)instance{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{原创 2016-04-19 18:15:50 · 388 阅读 · 0 评论 -
GCD
一 简介 1 强大的中枢调度器2 纯C语言提供非常强大的函数二 优势1 是苹果公司为多核并行运算提出的解决方案2 会自动利用更多的CPU内核3 会自动管理线程的生命周期4 不需要编写线程相关的代码,只需要提交任务三 核心概念任务和队列1 定制任务2 将任务添加到队列中原创 2016-04-18 14:21:45 · 665 阅读 · 0 评论 -
AVSpeechSynthesizer详解
#import "SpeechTool.h"@interface SpeechTool ()@property (nonatomic, strong) AVSpeechSynthesizer *synthesizer; ///< 声音阅读器@property (nonatomic, strong) NSArray *voices; ///< 声音@property (nonatomic原创 2016-05-25 10:56:57 · 482 阅读 · 0 评论 -
多线程
#import "ViewController.h"#import @interface ViewController ()@end@implementation ViewControllervoid *run (void *param){ return NULL;}- (void)viewDidLoad { [super viewDidLoa原创 2016-04-15 15:46:36 · 339 阅读 · 0 评论 -
NSData+Base64
// Create NSData object NSData *data = [@"iOS" dataUsingEncoding:NSUTF8StringEncoding]; // Convert to Base64 data NSData *base64Data = [data base64EncodedDataWithOpt原创 2016-05-24 13:14:20 · 601 阅读 · 0 评论 -
GCD定时器
// 比NSTimer更精准,不受RunLoop的Model影响int count = 0;- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // 获得队列 dispatch_queue_t queue = dispatch_get_global_queue(0, 0); // 1 创原创 2016-04-15 10:49:04 · 528 阅读 · 0 评论 -
图片加载问题
建议 1 小图片 放在Images,xcassets 中2 大图片 放在Supporting Files 中 // 会缓存imageNamed:// 不会缓存imageWithContentOfFile:[[NSBundle mainBundle] pathForResource: ofType:]原创 2016-01-15 17:38:35 · 272 阅读 · 0 评论 -
关于Git
一、前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流… 二、git branch 和 git checkout 1 2 3 4 5 6 7 8 9 10 11 12 git branch//查看当前分支 git branch -r//列出远程分支 git bran转载 2015-11-17 16:20:59 · 380 阅读 · 0 评论 -
iOS第三方支付(支付宝)
使用支付宝进行一个完整的支付功能,大致有以下步骤:与支付宝签约,获得商户ID(partner)和账号ID(seller)下载相应的公钥私钥文件(加密签名用)下载支付宝SDK生成订单信息调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道支付完毕后返回支付结果给商户客户端和服务器支付宝提供了Demo让开发人员快速了解支付的接入流程:http://club.alipay.com/thr转载 2015-11-17 14:29:16 · 403 阅读 · 0 评论 -
AFNetworking原理及常用操作
AFN的六大模块NSURLConnection,主要对NSURLConnection进行了进一步的封装,包含以下核心的类:AFURLConnectionOperationAFHTTPRequestOperationManagerAFHTTPRequestOperationNSURLSession,主要对象NSURLSession对象进行了进一步的封装,包含以下核心的转载 2015-11-17 14:40:24 · 459 阅读 · 0 评论 -
iOS7默认状态栏文字颜色为黑色,项目需要修
1在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO2 在需要改变状态栏颜色的 AppDelegate中在didFinishLaunchingWithOptions方法中增加:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyle原创 2015-11-17 14:37:09 · 244 阅读 · 0 评论 -
UIPickerview循环滚动
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1;}- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {原创 2015-11-17 14:34:03 · 954 阅读 · 0 评论 -
UILabel自适应文本,让文本自适应
//UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 300, 100)]; label.numberOfLines = 0; label.lineBreakMode = NSLineBreakByWordWrapping; label.text转载 2015-11-17 14:31:35 · 320 阅读 · 0 评论