ios学习之路
天空下的雏鹰
iOS 菜鸟一枚
展开
-
配置多环境变量打包
在实际的开发中,经常会有多个环境用来测试,打包,发布等,需要手动更改一些参数来保证环境的正确,在发布生产版本的时候很容易造成因为参数错误造成打包错误出现生产问题,本文介绍一种简单的配置方式,用来切换多个环境,防止手动更改多个环境变量引发的问题。1.新建Build Configuration2.项目中是否使用cocoaPods如果使用cocoaPods请新建好configuration后,立即执行pod install如果未使用,请忽略此步骤3.数据环境的配置在当前Target原创 2020-07-26 23:36:59 · 435 阅读 · 1 评论 -
安装和更新ruby
rvm是什么?为什么要安装rvm呢,因为rvm可以让你拥有多个版本的Ruby,并且可以在多个版本之间自由切换。第一步:安装rvm$ curl -L get.rvm.io | bash -s stable$ source ~/.rvm/scripts/rvm等待终端加载完毕,后输入:rvm -v如果能显示版本好则安装成功了。第二步:安装ruby列出r转载 2016-10-19 16:09:52 · 736 阅读 · 0 评论 -
cocoaPods的安装
一、概要iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。二、安装由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby转载 2015-09-29 17:49:09 · 301 阅读 · 0 评论 -
cocoapod找不到头文件
问题描述:使用cocoapods时,import 找不到头文件。问题原因:这是因为还没设置头文件的目录。解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT} ,后边选择recursive 。就可以了。注意:是在 User Header Search Paths 里添加,不是上面的 Header Search原创 2016-11-08 10:41:41 · 719 阅读 · 0 评论 -
子线程执行方法
1使用gcd dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Do the work in background });2.使用performSelectorInBackgr原创 2016-07-05 11:32:05 · 362 阅读 · 0 评论 -
更新rvm,更新ruby的提前
1、安装 RVMRVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)[ruby] view plain copy$ curl -L get.rvm.io | bash -s stable 等待一段时间后就可以成功安装好 RVM。原创 2016-07-15 17:22:35 · 6142 阅读 · 1 评论 -
删除cell
如果想实现滑动(轻扫)cell右边就能显示一个删除按钮,则要实现tableview 的datasource的方法:(1)- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPa原创 2016-04-21 18:03:51 · 961 阅读 · 0 评论 -
截取字符串
1.截取字符串NSString*string =@"sdfsfsfsAdfsdf";string = [string substringToIndex:7];//截取掉下标7之后的字符串NSLog(@"截取的值为:%@",string);[string substringFromIndex:2];//截取掉下标2之前的字符串NSLog(@"截取的值为:%@",string)原创 2016-04-21 17:57:23 · 246 阅读 · 0 评论 -
字符串与数组的相互转化
//数组-》字符串NSString *aaa = [dataArraycomponentsJoinedByString:@"111"]; //字符串-》数组 NSArray *arrs = [aaacomponentsSeparatedByString:@"111"];原创 2016-04-27 14:44:27 · 313 阅读 · 0 评论 -
tableView分割线从头开始
设置 tableView的俩个属性: _tableView.layoutMargins = UIEdgeInsetsZero; _tableView.separatorInset = UIEdgeInsetsZero;在 cell 即将显示的时候,设置 cell 的属性(tableView 的代理方法)- (void)tableView:(U原创 2015-12-24 14:03:42 · 305 阅读 · 0 评论 -
Implicit declaration of function '' is invalid in C99.
Implicit declaration of function '' is invalid in C99.的问题第一种:一般出现该问题是因为通过C调用了unix/linux 底层接口,所以需要调整c语言的编译选项,设置方法见下图:(根据实际情况选择相应的编译选项)第二种:加上文件所在父类头文件就OK问题解决原创 2015-11-19 14:02:12 · 25913 阅读 · 2 评论 -
UICollectionView
UICollectionView的结构回顾首先回顾一下Collection View的构成,我们能看到的有三个部分:CellsSupplementary Views追加视图(类似Header或者Footer)Decoration Views装饰视图(用作背景展示)而在表面下,由两个方面对UICollectionView进行支持。其中之一和tabl转载 2015-11-25 15:25:39 · 298 阅读 · 0 评论 -
NSValue
Objective-C 中的NSValue的详解一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器。它可以保存任意类型的数据,比如int,float,char,当然也可以是指pointers, structures, and object ids。NSValue类的目标就是允许以上数据类型的数据结构能够被添加到集合里,例如那些需要其元素是对象的数据结构,原创 2015-11-25 15:02:10 · 255 阅读 · 0 评论 -
initWithCoder?编码与解码(序列化与反序列化)
// codeObj.h#import /**cocoa具备一种机制来将对象自身转换为某种格式并保存中磁盘上。对象可以将它们的实例变量和其他数据编码为数据块,然后保存到磁盘中。以后将这些数据块都会到内存中,并且还能基于保存的数据创建新对象。这个过程称为编码和解码,或称为序列化和反序列化。*//**要编码的对象,必须实现NSCod转载 2015-11-25 14:52:00 · 700 阅读 · 0 评论 -
@(),@[],@{}
初始化对象,数组,字典的一种方法NSArray *array = @() ,初始化的一种方法原创 2015-11-25 13:56:26 · 370 阅读 · 0 评论 -
关于iOS9和x-code7的http请求失败的问题
iOS9引入了新特性App Transport Security (ATS)在Info.plist中添加NSAppTransportSecurity类型Dictionary。在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES注意:单元测试下边的info.plist也有,但是修改那个是没原创 2015-09-21 16:07:00 · 380 阅读 · 0 评论 -
iOS 苹果内购机制
iOS应用程序内购/内付费(一) 很久之前就想出一篇IOS内付费的教程,但是一查网上的教程实在太多了,有的写得真的蛮不错的,就心想算了,于是就保存在草稿箱了。至于为什么写完它呢!真是说来话长,最近公司有个项目经理跑来问我有关苹果内付费相关的细节,跟他聊了半天,从项目对接苹果官方支付接口聊到了如何查看App收益,最后终于使他有了一些眉目,但是悲催的是还要我继续去跟转载 2015-10-10 09:40:00 · 1436 阅读 · 0 评论 -
iOS 中手机号和url的正则
手机号:NSString * MOBILE =@"^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\\d{8})$"; NSPredicate *regextestmobile = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", MOBI原创 2016-12-05 11:15:10 · 304 阅读 · 0 评论 -
oc知识
字符串的表示字符串使用NSString,用@”"来表示字符串。NSString是只读的字符串。NSString *string = @"Hello World!";可修改的字符串要这样声明:NSMutableString * string = [NSMutableString stringWithString:@"Hello World!"];字符串操作//原创 2016-12-06 14:25:24 · 240 阅读 · 0 评论 -
UIApplication的一些知识
每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的。可以通过sharedApplication方法得到。UIApplication对象的主要任务是处理用户事件的处理路径,例如分发一个UIEvent到另外一个对象去处理。UIApplication对象持有众多的UIWindow对象,因此可以组织app的展示。UIAppli转载 2016-12-21 15:23:22 · 408 阅读 · 0 评论 -
tableView滚到到顶部
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO]; //***************方法二***************// [self.tableView setContentOffset:CGPointMake(0,0) animated:NO];...原创 2018-07-19 08:15:50 · 561 阅读 · 0 评论 -
获取文件相关消息
//从路径中获得完整的文件名 (带后缀) NSString *fileName = [filePath lastPathComponent]; //获得文件名 (不带后缀) NSString *fileName1 = [filePath stringByDeletingPathExtension]; //获得文件的后缀名 (不带'.') NS原创 2017-06-13 15:28:25 · 299 阅读 · 0 评论 -
UIAppearance的使用
iOS5及其以后提供了一个比较强大的工具UIAppearance,我们通过UIAppearance设置一些UI的全局效果,这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格,它提供如下两个方法。+ (id)appearance这个方法是统一全部改,比如你设置UINavBar的tintColor,你可以这样写:[[UINavigationBar appearanc转载 2017-03-23 22:48:20 · 272 阅读 · 0 评论 -
scrollow中的一些contentSize等
复习一下这几个知识:1、contentSize:scrollview可显示的区域2、contentOffset:scrollview当前显示区域顶点相对于frame顶点的偏移量3、contentInset:scrollview的contentview的顶点相对于scrollview的位置原创 2017-02-23 23:28:40 · 499 阅读 · 0 评论 -
面向过程编程和面向对象编程
面向过程编程和面向对象编程面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的。面向对象编程面向对象编程是将事物对象化,通过对象通信来解决问题。面向对象编程,数据和对数据的操作是绑定在一起的。面向对象的三大基本特征:封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,原创 2017-01-18 15:06:08 · 667 阅读 · 0 评论 -
cocoa 和 cocoaTouch
1.cocoa 和cocoa TouchCocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序。Cocoa Touch包含Foundation和UIKit框架,可用于开发iPhone OS系统的应用程序。Cocoa是 Mac OS X 的开发环境,Cocoa Touch是 iPhone OS的开发环境。Foun原创 2017-01-18 15:05:26 · 467 阅读 · 0 评论 -
iOS edgesForExtendedLayout、artomaticallyAdjustsScrollViewInsets
iOS edgesForExtendedLayout、artomaticallyAdjustsScrollViewInsetsiOS 7之后viewController使用全屏布局,离不开edgesForExtendedLayout,是UIExtendedEdge属性,指定边缘要延伸的方向,默认值为UIRectEdgeAll,四周边缘全部延伸,视图上即使naviga原创 2017-01-16 11:09:36 · 846 阅读 · 0 评论 -
CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target
安装cocoaPods的时候报错,研究得出,这样写可以解决问题:sudo gem install cocoapods --pre执行上述命令更新之后报错在Podfile内可以这样写,来解决问题:platform :ios, '8.0'target'MyApp'do pod'AFNetworking','~> 2.6' pod'OR原创 2016-10-28 14:53:44 · 197 阅读 · 0 评论 -
iOS 设置程序锁屏
[[UIApplicationsharedApplication] setIdleTimerDisabled:yes];原创 2017-01-10 15:56:54 · 339 阅读 · 0 评论 -
oc的一些基础知识
oc知识1.+alloc是分配储存空间,返回的是未初始化的对象 ,调用类方法person *p1 = [person alloc];2.-init是构造方法,用来初始化对象,返回对象本身,调动的是对象方法person *p2 = [person init];3.@property 可以自动生成某个成员变量的setter和get原创 2016-12-30 10:23:08 · 265 阅读 · 0 评论 -
文件流知识
二、文件流知识补充1. 打开文件FILE *fp = fopen(文件路径,打开方式);打开方式: r : 读,如果文件不存在返回NULL,存在就打开w : 写,如果文件存在则覆盖,不存在则创建a : 追加,如果文件存在则追加,不存在则创建r+ : 在r的基础上,多增加了写的权限w+ : 在w的基础上,多增加了读的权限a+ : 在a的原创 2016-12-29 09:41:28 · 262 阅读 · 0 评论 -
Log重定向
iOS 调试必须链接上X-code原创 2016-12-29 09:32:34 · 1116 阅读 · 0 评论 -
ios 清除web的cookie
UIWebView清除Cookie://清除cookiesNSHTTPCookie *cookie;NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];for (cookie in [storage cookies]) { [storage d原创 2017-01-05 12:30:32 · 585 阅读 · 0 评论 -
contentSize、contentOffset、contentInset
contentSize 是scrollview中的一个属性,它代表scrollview中的可显示区域,假如有一个scrollview,它的frame为(0,0,320,480),而它的contentSize为(320,960).也就是说,这个scrollview整个内容的大小为(320,960),要通过上下滑动scrollview来查看(320,480)后的内容。contentOffset原创 2016-12-23 11:08:20 · 235 阅读 · 0 评论 -
oc常用函数
算术函数【算术函数】函数名说明int rand()随机数生成。(例)srand(time(nil)); //随机数初期化int val = rand()P; //0~49之间的随机数int abs(int a)整数的绝对值(例)int val = abs(-8); →8※浮点数的时候用fab转载 2016-12-22 11:04:08 · 820 阅读 · 0 评论 -
setNeedsDisplay、setNeedsLayout
1.setNeedsDisplay会调用drawRect方法,重绘2.setNeedsLayout会调用layoutSubViews,subViews重新布局原创 2016-12-22 10:46:47 · 347 阅读 · 0 评论 -
iOS App 消息推送机制
IOS开发之实现App消息推送分类: IOS开发推送最新AppStoreXCode6ios开发好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多刚开始接触ios的人会很想了解一下。(ps:网上看了一下虽然有很多讲述转载 2015-10-10 09:37:34 · 550 阅读 · 0 评论 -
cocoaPods的更新
CocoaPods版本升级和往常一样使用CocoaPods管理一个基于FMDB的项目类库命令行执行$ pod install[!] The 'master' repo requires CocoaPods 0.32.1 - 失败,提示需要CocoaPods 0.32.1版本查看CocoaPods版本$ pod --version0.29.0转载 2015-10-08 11:55:24 · 326 阅读 · 0 评论 -
Objective-C中的hasPrefix
Objective-C中的hasPrefix hasPrefix:方法的功能是判断创建的字符串内容是否以某个字符开始,其语法形式如下: -(BOOL)hasPrefix:(NSString*)aString; 其中,(NSString *)aString;用来指定字符串。该方法的返回值为BOOL,当BOOL为YES或者为1时,则字符串是以某个字符开始;当BOOL为NO或原创 2015-05-22 11:26:03 · 318 阅读 · 0 评论 -
隐藏键盘的方法
IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现点击键盘以外的空白区域来将键盘隐藏,以下我总结出了几种隐藏键盘的方法:首先说明两种可以让键盘隐藏的Method:1、[view endEditing:YES] 这个方法可以让整个view取消第一转载 2015-06-01 15:31:50 · 450 阅读 · 0 评论