![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Objective-C
码小生❦
与其空想的未知,不如勇敢的前行,Happy coding,happy life。
展开
-
CocoaPods解决Unable to add a source with url
[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master-1`. You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.原因是装了多个Xcode导致路径变了的缘故解决原创 2016-10-12 08:26:30 · 3827 阅读 · 0 评论 -
UI -知识点回顾 二
1.自定义label—textField视图(复合设计模式) //创建LTView继承子UIView#import@interface LTView : UIView//左侧的Label@property(strong, nonatomic) UILabel *leftLabel;//strong == retain//右侧的UITextField@property(原创 2015-12-09 15:13:41 · 604 阅读 · 0 评论 -
UI -知识点回顾 三
1.UINavigationController //导航控制器, 用于去管理多个视图控制器的切换 //管理的模式: 栈(先进后出) //创建导航控制器 UINavigationController *naVC = [[UINavigationController alloc] initWithRootViewController:rootVC];原创 2015-12-09 15:22:08 · 675 阅读 · 0 评论 -
iOS第三方网络请求框架--AFNetworking
AFNetworkingAFURLConnectionOperation可以说是AFN最基础的类。继承自NSOperation类,将网络请求依附到一个operation上。从而让我们能够有效的控制并观察一个网络请求的创建、进行、取消、完成、暂停恢复、异常等问题及状态。AFHTTPRequestOperation HTTP或HTTPS协议请求的AFURLConne原创 2015-12-12 10:36:56 · 2850 阅读 · 0 评论 -
单 例(Singleton)
在项目中最好不要用单例, 切记, 而且不宜过多使用, 占内存, 而且全局的东西状态不易改变, 不够灵活. 如果你的项目中频繁使用单例, 只能说明你水平低 .单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。对于单例单例在软件中,单例保证了在应用程序中,该类只被实例化一次。并且在使用时,整个应用程序使用的该对象实体是同一个实体。贴代码:比如,我要创原创 2015-12-15 12:32:37 · 426 阅读 · 0 评论 -
iOS 文件管理
一、iOS中的沙盒机制iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。每个应用程序都有自己的独立的存储空间(沙盒)一般来说应用程序之间是不可以互相访问模拟器沙盒的位置/User/userName/L原创 2015-12-19 14:34:41 · 713 阅读 · 0 评论 -
iOS集成支付功能 --支付宝
一、集成支付宝步骤向支付宝申请,与支付宝签约,获得商户ID(partner)和账号ID(seller)下载相应的公钥私钥文件(加密签名用)下载支付宝SDK生成订单信息,签名加密调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道支付完毕后,支付宝客户端会自动跳回到原来的应用程序在原来的应用程序中显示支付结果原创 2015-12-21 20:03:46 · 564 阅读 · 0 评论 -
iOS 数据解析 JSON XML
Json格式:NSJSONSerialization,官方提供的Json数据格式解析类,iOS5以后支持JSONKit(第三方类库)SBJsonTouchJsonXML格式:NSXMLParse,官方自带GDataXML,Google提供的开元XML解析库JSON数据NSJSONSerialization苹果官方给出的解析方式是性能最优越的,虽然原创 2015-12-21 20:08:11 · 696 阅读 · 0 评论 -
KVO & KVC & NSNotificationCenter
什么是KVC?1. KVC(键值编码)的概念:苹果的官方文档描述: KVC(Key-Value-Coding)是一种通过字符串描述而不是通过调用访问方法或者直接使用实例变量的非直接的访问对象属性的机制。KVC 是观察者模式在Objective-C中的实现之一,它以分类(非正式协议)的形式被定义在NSObject中,从协议的角度看,是定义了一套让开发者遵守的规范和使用方法原创 2015-12-28 00:16:19 · 309 阅读 · 0 评论 -
推送(本地Local Notification)
本地推送介绍本地推送和远程推送的功能是一样的,都是要提醒用户去做某些事情。但是和远程推送不同的就是本地推送是不需要设备联网的,而远程推送是必需要设备联网的,因为只有联网状态下,才能和苹果的APNs服务器建立长连接,从而推送消息。本地推送是由App自己设定的,并且发送给安装此App的这台设备,属于一对一的对应关系。本地推送适合日历 to-do list等类型的App,注意:一原创 2016-02-26 22:08:13 · 1685 阅读 · 0 评论 -
UI -知识点回顾 一
1.UIWindow-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOption{//UIWindow//启动程序完成后,创建window self.window = [UIWindow alloc]initWithFrame:[[原创 2015-12-09 15:10:22 · 389 阅读 · 0 评论 -
Objc-C 知识点回顾 十 MemoryManagement
1.内存管理的方式(1)垃圾回收(gc)(2)MRC(Manual Reference Count)(3)ARC(Auto Reference Count) //垃圾回收机制(gc):由系统管理内存, 开发人员不需要管理内存 //OC从2.0版本加入垃圾回收机制 //在iOS平台中不支持OC的垃圾回收机制, MacOC平台支持原创 2015-12-08 11:16:28 · 361 阅读 · 0 评论 -
IOS 页面传值的方法
OS页面间传值的方式(NSUserDefault /Delegate /NSNotification /Block/单例)实现了以下iOS页面间传值:1.委托delegate方式;2.通知notification方式;3.block方式;4.UserDefault或者文件方式;5.单例模式方式;6.通过设置属性,实现页面间传值在iOS开发中,我们经常会遇到页面间跳转传值的问题,现归原创 2015-10-12 12:51:50 · 813 阅读 · 0 评论 -
IOS 异步下载图片
//下载图片 //创建url //方式1 NSURL *imageUrl = [NSURL URLWithString:PicURL]; /* NSData *data = [[NSData alloc]initWithContentsOfURL:imageUrl]; NSLog(@"%@",data); UIImage原创 2015-10-12 23:12:14 · 482 阅读 · 0 评论 -
iOS 图片下载封装 ImageDownloader
#import #import @interface ImageDownload : NSObject//下载图片并用Block返回-(void)downLoadImageUrl:(NSURL *)imageUrl recevieImage:(void(^)(UIImage *image))imageBlock;//单例+(instancetype)defaultDownload;@原创 2015-10-13 13:03:51 · 614 阅读 · 0 评论 -
ios 关于AleartView 自动取消的问题
关于AleartView自动消失的问题,把AleartView声明成属性,定义一个延时方法,让AleratView服从延时方法@interface ActivityDesController ()@property(nonatomic,strong) UIAlertView *alert;@end延时方法-(void)performDismiss:(NSTimer *)timer{原创 2015-10-13 20:16:47 · 893 阅读 · 0 评论 -
collectionView布局原理及瀑布流布局方式
一直以来都想研究瀑布流的具体实现方法(起因是因为一则男女程序员应聘的笑话,做程序的朋友应该都知道)。最近学习到了瀑布流的实现方法,瀑布流的实现方式有多种,这里应用collectionView来重写其UICollectionViewLayout进行布局是最为简单方便的。但再用其布局之前必须了解其布局原理。 在这里笔者挑出其中较为重要的几个方法来进行讲解。1.- (BOOL)shouldIn原创 2015-10-16 16:43:11 · 547 阅读 · 0 评论 -
Objc-C 知识点回顾 二 实例变量 、方法
1.OOP的特性 面向对象编程的三大特性:1.封装 2.继承 3.多态 封装:高内聚,低耦合 内聚:模块内部成员的关联程度 耦合:模块之间的关联程度2.实例变量的可见度 修饰词的作用范围:从这个修饰词开始往下的实例变量 (1)public 公共的,可以在类的内部和外部访问 内部访问:实例变量的名字 外部访问:对象->实例变量原创 2015-10-16 17:04:39 · 402 阅读 · 0 评论 -
IOS 多线程
程序;由源代码生成的可执行应用。 进程:一个正在运行的程序可以看做一个进程,进程拥有独立运行所需要的全部资源。 线程;程序中独立运行的代码段。 一个线程是由一个或多个线程组成。进程只负责资源的调度和分配,线程才是程序真正的执行单元,负责代码的执行。 //单线程 每个正在运行的程序,至少包含一个线程,这个线程叫做主线程。 主线程原创 2015-10-19 20:17:46 · 333 阅读 · 0 评论 -
Cocoapods安装及其使用详解
一、什么是CocoaPodsCocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要1.把开源库的源代码复制到项目中2.添加一些依赖框架和动态库3.设置-ObjC,-fno-objc原创 2015-11-05 10:38:55 · 771 阅读 · 0 评论 -
Objc-C 知识点回顾 八 NSDate、 Extension、Category、Delegate
1.NSDate:日期类 NSDate *date = [NSDate date]; NSLog(@"%@", date); //默认是0时区 ,获得东八区相差8小时 //格式:年-月-日 时:分:秒 时区 //NSTimeInterval: 时间的计算单位, 秒, 实质是double //一分钟以后原创 2015-12-08 11:12:46 · 415 阅读 · 0 评论 -
iOS公司开发者账号申请
一、苹果开发者账号申请链接地址:https://developer.apple.com/PRograms/ios/。打开链接如下:1. 点击Enroll,进入申请页面2. 下面的页面主要介绍了申请的流程,直接点start your enrollment,进入下一页面 3. 下面的页面是让你绑定一个apple id,最好还是新创建一个apple id比较好。原创 2016-03-19 16:01:40 · 831 阅读 · 1 评论 -
推送(远程Remote Notification)
一.关于推送通知 推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能。是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的。一般说来,当要显示消息或下载数据的时候,通知是由远程服务器(程序的提供者)发送,然后通过苹果的推送通知服务(Apple Push Notification Service,简称apns)推送到设备的程序上。原创 2016-02-26 22:06:57 · 2086 阅读 · 0 评论 -
通知中心(NSNotificationCenter)
通知中心(NSNotificationCenter)一对多1 - 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信2 - 任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么。其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知原创 2016-02-26 22:05:05 · 634 阅读 · 0 评论 -
通知中心(NSNotificationCenter)
通知中心(NSNotificationCenter)一对多1 - 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信2 - 任何一个对象都可以向通知中心发布通知(NSNotification),描述自己在做什么。其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知原创 2016-01-05 10:48:42 · 397 阅读 · 0 评论 -
Socket网络编程
1.Socket简介首先让我们通过一张图知道socket在哪里?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。2.TCP和UDP的区别在这里就必须讲一下udp和tcp的区别了TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时原创 2016-01-05 10:24:45 · 351 阅读 · 0 评论 -
3D Touch 的实现:
一、3D Touch 的实现:1.在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中实现添加和分享的入口,代码如下 :- (BOOL)application:(UIApplication *)applica原创 2015-12-28 00:17:34 · 626 阅读 · 0 评论 -
Objc-C 知识点回顾 六 字典、集合
1.NSDictionary //不可变字典类 //(1)如果不创建, 不能够使用 //(2)内部以key-value(键值对)形式存储 //(3)key必须唯一 //(4)是无序集合 //(5)value必须为对象, key一般为NSString //name: 张三, age: 18原创 2015-12-08 11:09:15 · 484 阅读 · 0 评论 -
Objc-C 知识点回顾 五 NSArray、NSMutableArray
1.NSArray //(1)不可变数组 //(2)一旦创建, 不能更改 //(3)数组中存放的元素必须是对象类型的 //(4)数组以nil为结束符号 //创建数组 NSArray *array = [[NSArray alloc] initWithObjects:@"abc", @"123", @"ABC", nil]; NSLog(@"原创 2015-12-08 11:08:09 · 525 阅读 · 0 评论 -
Objc-C 知识点回顾 四 NSString 、NSMutableString
1.NSString //NSString:不可变字符串, 一旦创建, 不能修改 //初始化方法 //创建空字符串 NSString *string1 = [[NSString alloc] init]; NSLog(@"%@", string1); //根据给定的常量字符串,创建NSString对象 NSString *string2 =原创 2015-12-08 11:06:03 · 811 阅读 · 1 评论 -
Objc-C 知识点回顾 三 继承
1.继承 OC中的继承特点 1.单根继承,基类(根类)是NSObject 2.单向继承,一个类只有一个父类,可以有很多的子类 (继承的上层:父类,下层:子类) 继承具有传递性,子类能继承父类全部的特征和行为 建立继承关系以后,子类可以继承父类 1.实例变量:public,protected 2.方法:公共的方法 子类可以原创 2015-12-08 11:03:40 · 397 阅读 · 0 评论 -
Objc-C 知识点回顾 九 Property
1.属性 //属性:为你自动生成setter和getter //能在⼀定程度上简化程序代码,并且增强实例变量的访问安全性 //属性声明的写法 //@property 数据类型 实例变量名; //属性实现的写法 //@synthesize 实例变量名; 2.属性的修饰符原创 2015-12-08 11:14:52 · 377 阅读 · 0 评论 -
Objc-C 知识点回顾 七 block
1.Block的定义Block:块语法,本质上是匿名函数(没有名称的函数) //Block的类型 //返回值类型(^)(参数类型1 参数名1, 参数类型2 参数名2...) //注:(1)即使没有参数, 括号也不能省略 //(2)参数名一般省略, 特殊情况为了使用方便, 参数名不省略 //int (^原创 2015-12-08 11:10:33 · 493 阅读 · 0 评论 -
解决NVIDIA驱动程序安装并加载问题
由于10.10.5司机也不再为系统配置文件分发文件的检查,如果安装了硬件。它只检查了OS X的版本号。这使得问题1和3过时。这是一个指南,帮助试图安装NVIDIA网络驱动器,第一次的时候解决问题。有各种各样的原因,他们不会因检查包文件中安装。这也涵盖了一些问题,其中司机将不是一个操作系统更新或黑屏开机后的结果加载。误解:您必须使用MacPro3,1 / 4,原创 2016-01-13 21:45:11 · 10081 阅读 · 0 评论 -
iOS之运行时(Runtime)
动态编程语言和静态编程语言的区别动态编程语a言:在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改删除。例如OC静态编程语言:在程序编译阶段检查数据的类型,数据类型的结构不可以在运行时被改变。例如CRuntime---运行时系统是一个有公开接口的动态库,由一些数据结构和函数的集合组成,这些数据结构和函数的声明头文件,在/usr/include/objc,这些函数支持用纯原创 2016-02-11 22:02:07 · 524 阅读 · 0 评论 -
KVO探究
KVO探究NSKeyValueCoding这种统一的直接通过字符串存取ObjC中对象的成员属性的接口,可以实现由外部脚本控件程序执行或者获取程序执行信息。通过KVC存取二进制库中的私有成员也比较实用。普通开发的确不会并且不需要用太多。KVC处理业务很少用到, 但是却是KVO和CoreData的基础,基本概念MODEL主要是英文文档里面经常出现的一些概原创 2016-02-26 22:01:30 · 424 阅读 · 0 评论 -
Run Loop详解
前言做了一年多的IOS开发,对IOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情。想学好一门语言还是需要深层次的了解它,这样才能在使用的时候得心应手,出现各种怪异的问题时不至于不知所措。废话少说,进入今天的正题。不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它进行任何操作,这个应用就像静止了一样,不会自发的有原创 2016-02-26 21:59:41 · 578 阅读 · 0 评论 -
App上线流程
上架分两步:1.真机上调试2.发布app到App Store在IOS真机上调试的方法步骤流程:1.创建开发者证书2.设备注册3.创建App ID4.创建配置概要文件5.设备调试下面详细说:1.创建开发者证书:每个开发人员一次只能使用一个开发者证书。门户网址https://developer.apple.com/ios/manage/overv原创 2016-02-11 22:26:18 · 1236 阅读 · 0 评论 -
iOS之NSDate
1.NSDate的详细介绍//1.通过date方法创建出来的对象,就是当前时间对象;NSDate *date = [NSDate date];NSLog(@"now = %@", date); //2.获取当前所处时区NSTimeZone *zone = [NSTimeZone systemTimeZone];NSLog(@"now = %@", zone); //3.获取当前时区和指原创 2016-02-11 22:23:56 · 645 阅读 · 0 评论 -
iOS之加速计、陀螺仪(UIAccelermeter、Core Motion)
一、加速计的作用用于检测设备的运动(比如摇晃)二、加速计的经典应用场景摇一摇计步器三、加速计的原理检测设备在X、Y、Z轴上的加速度 (哪个方向有力的作用,哪个方向运动了)根据加速度数值,就可以判断出在各个方向上的作用力度四、加速计程序的开发在iOS4以前:使用UIAccelerometer,用法非常简单(到了iOS5就原创 2016-02-11 22:18:38 · 3461 阅读 · 0 评论