![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS开发
文章平均质量分 59
shuju345
这个作者很懒,什么都没留下…
展开
-
音乐播放器歌词滚动
简单实现基于IOS的音乐播放器,并且带有歌词,随播放自动滚动,实现效果如下:技术分享首先,需要建立一个解析歌词的类ZMPlrc,解析歌词主要就是把时间和对应的歌词分离出来,然后存储到数组中。ZMPlrc.h#import @interface ZMPlrc : NSObject/** 时间 */@property (nonatomic,s原创 2015-08-07 22:08:13 · 1219 阅读 · 0 评论 -
ios状态栏的设置
IOS上 关于状态栏的相关设置(UIStatusBar)知识普及ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到:前景部分:就是指的显示电池、时间等部分;背景部分:就是显示黑色或者图片的背景部分;如下图:前景部分为白色,背景部分为黑色 在此输入图片描述注意:这里只涉及到ios7以及更高版本,低版本原创 2015-08-07 21:25:45 · 358 阅读 · 0 评论 -
显示和隐藏Mac隐藏文件的命令
显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false原创 2015-08-22 09:19:51 · 548 阅读 · 0 评论 -
tcp和udp
原创 2015-08-22 22:21:38 · 421 阅读 · 0 评论 -
选择器和Class
【选择器】一.认识选择器(Selector)【注】选择器是一个变量类型 SEL【注】SEL的变量装消息 类似于函数指针【见day5-选择器-1】SEL sel = @selector(crash);[man performSelector:sel];[man performSelector:@selector(set原创 2015-08-23 10:17:50 · 669 阅读 · 0 评论 -
多态与类的消息机制
多态与类的消息机制【多态】重载,重写,虚函数//其实多态就是指,同一个接口不同的实现。【注】OC的成员方法采用消息机制,因此都是虚函数。【虚方法】 1.父类的指针,可以指向子类的对象。 2.响应消息,不看指针,看对象。【注】虚方法体现了不同事物被同一事件触发,有不同的响应。原创 2015-08-23 10:20:29 · 626 阅读 · 0 评论 -
Foundation框架下的常用类
【字段的权限】【注】在类中声明字段,可以为字段添加权限@private 私有权限@protected 保护权限@public 公有权限@interface Father : NSObject{@private //私有权限修饰的变量,不能被子类继承,不能被外部函数访问。 int a;@protected //缺省权限 保护权限修饰的变量,可以被子类原创 2015-08-23 10:22:18 · 607 阅读 · 0 评论 -
NSAttributedString
NSAttributedString维护了一个NSString,用来保存最原始的字符串,另有一个NSDictionary用来保存各个子串/字符的属性。创建AttributedString示例:UIFont *font = [UIFont fontWithName:@"Courier" size:18.0];NSDictionary *attriDict = [NSDictionar原创 2015-08-23 16:20:00 · 652 阅读 · 0 评论 -
UIWebView的用法
#import "MJViewController.h"#import "MBProgressHUD+Add.h"@interface MJViewController ()@end@implementation MJViewController- (void)viewDidLoad{ [super viewDidLoad];原创 2015-08-09 10:57:03 · 322 阅读 · 0 评论 -
MVVM:模型-视图-视图模型(Model-View-ViewModel)
组成部分Model、View、ViewModel View:UI界面ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model; Model:数据访问层View与ViewModule连接可以通过下面的方式Binding Data:实现数据的传递Command:实现操作的调用AttachBehavior:实现控原创 2015-08-10 10:39:20 · 1622 阅读 · 0 评论 -
优化tableview的卡顿现象
1、复用单元格2、使用不透明的视图,单元格中尽量少使用动画3、图片加载使用异步加载,并且设置图片加载的并发数4、滑动时不加载图片,停止滑动开始加载5、文字图片可以直接drawInRect绘制6、如非必要,减少reloadData全部cell,只reloadRowsAtIndexPaths7、如果cell是动态行高,计算出高度后缓存8、cell高度固定的话直接用cell.原创 2015-08-10 10:46:36 · 1776 阅读 · 0 评论 -
【自动内存管理(ARC)】
【自动内存管理(ARC)】//从Xcode5以后,默认自动内存管理automatic reference counting;//自动引用计数【提】简单点说就是让编译器完成堆空间的引用计数加减,自动释放。程序员不再写 retain release等方法【另】OC的自动内存管理,不同于JAVA垃圾回收。而是在预处理时,直接在应该保留的地方,添加retain,在应该释放的地方,添加r原创 2015-08-24 09:06:10 · 702 阅读 · 0 评论 -
花20分钟写的-大白话讲解如何给github上项目贡献代码
本文献给对git很迷茫的新手,注意是新手,但至少会点基本操作,有点基本概念的新手,我不会从怎么用github和git是什么开始讲的。如果作为新手你看书又看不进去,原理又太复杂,有没有直接了当告诉我们怎么给项目贡献代码,并和项目同步代码的大体流程。于是我快速写了这么个东西。一来整理下自己混乱的思路,二来想号召大家一起用git开发点东西,可是好几个同鞋只会寂寞的给自己push。我先说下 我之前转载 2015-08-10 09:32:09 · 362 阅读 · 0 评论 -
NSAttributedString编程
- (void)viewDidLoad{ [super viewDidLoad]; NSMutableAttributedString *attributedString = [[[NSMutableAttributedString alloc] initWithString:@"测试富文本显示"] autorelease]; //为所有文本设置字原创 2015-08-24 08:55:14 · 579 阅读 · 0 评论 -
UIPickerView的使用
代理方法初始化 self.selectPicker.delegate = self; self.selectPicker.dataSource = self; self.selectPicker.frame = CGRectMake(0, 480, 320, 216) ;代理方法显示pickerview的components的个数-原创 2015-08-22 10:30:59 · 737 阅读 · 0 评论 -
UIDatePicker的使用
UIDatePicker * datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 20)]; //设置模式 默认显示的模式是日期和时间 datePicker.datePickerMode = UIDatePickerModeDat原创 2015-08-22 11:08:17 · 603 阅读 · 0 评论 -
crash日志的分析
如何获得crash日志如何解析crash日志如何分析crash日志 1. iOS策略相关 2. 常见错误标识 3. 代码bug一、如何获得crash日志当一个iOS应用程序崩溃时,系统会创建一份crash日志保存在设备上。这份crash日志记录着应用程序崩溃时的信息,通常包含着每个执行线程的栈调用信息(低内存闪退日志例外),对于开发人原创 2015-08-22 11:09:30 · 2043 阅读 · 0 评论 -
支付宝简单使用
1、拖拽库文件2、设置一下info.plist3、初始化支付宝SDK4、支付钱,我们可以写在appdelegate,然后去反复调用即可,我们需要的参数 4.1产品名称 4.2产品详情 4.3钱数5、跳转到支付宝6、服务器返回数据后,又跳转回来,我们处理一下,看看支付知否成功原创 2015-08-22 16:23:12 · 569 阅读 · 0 评论 -
网络推送的简单使用
/** * 网络推送 应用场景 1、每天晚上8点影视剧推送 2、小说更新推送 3、游戏活动推送 4、新闻推送 5、健康推送 奇葩用法: 1、聊天 2、查询某人的行为 3、提醒业务,比如一些秀场,女主播可以发送通知给支原创 2015-08-11 10:55:43 · 1210 阅读 · 0 评论 -
如何申请百度ak
方法/步骤1首先打开百度地图,右上方找到“地图API”栏目2点开之后是百度开放平台,往下拉一点点,看到“申请密匙”点击进去。这个时候需要登录各位的百度账号才能进去哦~3进入之后会看到百度地图LBS开放平台。1.选择“创建应用”2.“应用名称”可以自己随意编辑,既然是百度地图,建议大家就写“地图”3.原创 2015-08-11 19:52:41 · 3216 阅读 · 0 评论 -
地理编码的实现
一:效果输入地名,可以得到相应的经纬度,知识为了学习写的小Demo 二:实现步骤一 :首先获取用户输入的位置。 二 :创建地理编码对象。 三 :利用地理编码对象编码,根据传入的地址获取该地址对应的经纬度信息。 四 :最后将他们分别显示出来就可以了。三:代码#import "ViewController.h"#import @interface ViewControll原创 2015-08-25 15:21:51 · 1485 阅读 · 0 评论 -
地理反编码的实现
一:效果输入经纬度,可以得到相应的地名 二:思路跟地里编码差不多 1.获取用户输入的经纬度 2.根据用户输入的经纬度创建CLLocation对象 3.根据CLLocation对象获取对应的地标信息三:代码#import "ViewController.h"#import @interface ViewController ()/** * 地理编码对象原创 2015-08-25 15:23:23 · 713 阅读 · 0 评论 -
本地推送的使用方法
/** * 本地推送 应用场景:一般用于不需要网络提醒的情况 比如:游戏的每日任务,一到8点就准时提醒,双倍时刻开启,快来登陆哦 书籍类应用:你有多少天没看书了,要学习哦 健康类:亲~你吃药了吗,不要放弃治疗 恶搞类:在你分手的女朋友上安装一个软件,3个月后,自动开启xx约你开黑原创 2015-08-11 10:50:02 · 707 阅读 · 0 评论 -
iOS5 ARC学习笔记:strong、weak等详解
iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存。但是学习还是很有必要的。在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都很熟悉了,在此我也不介绍,网上有很多相关文章。现在我们看看iOS5中新的关键字strong, weak, unsafe_unretained. 可以与以前的关键字对应学习strong与r原创 2015-08-26 10:27:50 · 521 阅读 · 0 评论 -
class和struct的区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制: 默认的继承访问权限struct是public的,cl原创 2015-08-26 10:33:54 · 573 阅读 · 0 评论 -
runtime 运行时机制 完全解读
摘要在最开始听到runtime的时候,我是感到恐惧的,多么高大上的东西啊!!!后来,开始在网上查一些资料,可是就是只有那么几篇,看了好久,还不知所云,所以就更加恐惧了!!!!后来经过查看documents 以及一些国外大牛的blogs,终于对runtime有了更深刻的了解!于是就想写下这些东西,希望对读者们有帮助……runtime运行时机制 详细解读 目原创 2015-08-11 18:09:12 · 543 阅读 · 0 评论 -
UICollectionView的使用
代理方法:#pragma mark --- 创建UICollectionView- (void)createCollectionView{ UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; layout.itemSize = CGSizeMake(80原创 2015-08-10 20:39:05 · 459 阅读 · 0 评论 -
VLC集成指南
添加libMobileVLCKit添加库libstdc++libiconvlibbz2SecurityQuartzCoreCoreTextCFnetWorkOpenGLESAudioToolbox修改C++编译器为stdC++添加引用路径HeaderSearch Paths 为/Users/fq/Desktop/VLCDemo/VLCDem原创 2015-08-12 17:20:01 · 1019 阅读 · 0 评论 -
ios开发中全局变量的使用
在iPhone开发中,使用全局变量有这么几种实现方法:1、 在AppDelegate中声明并初始化全局变量 然后在需要使用该变量的地方插入如下的代码: //取得AppDelegate,在iOS中,AppDelegat被设计成了单例模式 AppDelegate *appDelegate = [[UIApplication sharedApplicatio原创 2015-08-12 18:02:42 · 691 阅读 · 0 评论 -
UICollectionView
代理方法#pragma mark --- 创建UICollectionView- (void)createCollectionView{UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];layout.itemSize = CGSizeMake(80, 80);lay原创 2015-08-10 20:30:03 · 416 阅读 · 0 评论 -
strong,weak, retain, assign的区别
strong与weak是由ARC新引入的对象变量属性 xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的。xcode 4.3(ios5和以上版本)之后就有了ARC,并且开始使用 strong与weak assign: 用于非指针变量。用于 基础数据类型 (例如NSInteger)和C数据类型(int,原创 2015-08-27 11:35:40 · 485 阅读 · 0 评论 -
exc_bad access code=exc_1386_gpflt
iOS开发中经常遇到这样的一个bug:exc_bad access code=exc_1386_gpflt。这样bug通常情况下就是内存管理方面的问题。一般是访问了已经释放的对象导致的,可以开启僵尸对象(Zombie Objects)来定位问题:在Xcode的菜单:Product->Scheme->Edit Scheme->Run xxx.app右边的选项中,选中E原创 2015-08-27 15:56:34 · 1063 阅读 · 0 评论 -
使用asyncsocket群聊
#import "ViewController.h"#import "AsyncSocket.h"@interface ViewController (){ //负责显示接受到的数据 UITextView *_textView; //负责输入数据 UITextField *_textField; //建立发送端原创 2015-08-13 11:09:56 · 574 阅读 · 0 评论 -
iOS中UDP的使用
//// ViewController.m// UDPDemo//// Created by qianfeng01 on 15-8-13.// Copyright (c) 2015年 zg. All rights reserved.//#import "ViewController.h"#import "AsyncUdpSocket.h"#impor原创 2015-08-13 15:29:22 · 1087 阅读 · 0 评论 -
取消tableViewCell的选中状态
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.selected = NO; [self.tableView deselectRowAtIndexPath:indexPath animated:YES];原创 2015-08-27 20:56:26 · 653 阅读 · 0 评论 -
Unknown class xxclass in Interface Builder file
今天在学习iOS中遇到了这个错误“Unknown class xxclass in Interface Builder file” error at runtime是我在使用xib的时候发生的,并且是我从另一个项目中复制过来的搜索后才发现,我xib中的label的类属于我复制项目中的名字,而我复制过来之后是把名字改过的。原创 2015-08-27 15:05:51 · 747 阅读 · 0 评论 -
message sent to deallocated instance
在XCode的以前版本中,如果遇到了1message sent to deallocated instance 0x6d564f0我们可以使用info malloc-history 0x6d564f0来查看调用堆栈来查看崩溃发生的地方,这种方法这里不作阐述,大家自行百度。在新的XCode里,调试器默认使用LLDB,原创 2015-08-27 15:57:39 · 504 阅读 · 0 评论 -
关于属性,成员变量的认识
关于属性和成员变量概念的说法,网上搜了很多,没找到特别明确的说,而且还更加混乱了。根据自己的认识和从网上搜索的信息稍微总结一下:看法1、从访问权限上区分属性和成员变量说到底都是变量,只是他们的访问权限不同。在.h文件的{}中声明的变量,默认是protect在.m文件的interface(){}声明的变量,默认是private在.m文件中声明的变量,在其他类中不可以调用;原创 2015-08-27 11:14:16 · 853 阅读 · 0 评论 -
Phonegap
http://www.cnblogs.com/comsokey/archive/2012/08/30/PhonegapVSAppCan.html原创 2015-08-13 14:07:05 · 572 阅读 · 0 评论 -
导航控制器的原理
导航控制器UINavigationController维护了一个数组,数组里面存放的是视图控制器,视图控制器之间的跳转是通过压栈和出栈的方式实现的。 当我们创建了n个视图控制器,相当于有n个视图控制器进栈,栈里面存放的视图控制器是由顺序的,当我们想要从第n-1个视图控制器跳转到第n-5个视图控制器时,第n-5个视图控制器之后的控制器必须先出栈,然后才能跳转到第n-5个视图控制器。原创 2015-08-28 09:58:51 · 911 阅读 · 0 评论