自定义的init方法,都必须调用父类的init方法。一般情况下为:- (id)init{ [super init]; xxx = xxx;} 通常情况下,这种模式可以满足绝大多数的需求,但是在少量情况下,需要一些特殊处理。1,出于优化的考虑,init方法会释放已经分配了内存的对象,然后创建另一个新对象并返回之。2,init方法在执行过程中发生了错误,所以会释放对象并返回nil。 对于1,苹果官网的做法是将父类init方法的返回值给self,对于2,苹果官网的...
(1)百度云推送的接入请到百度云推送官网查看具体内容,这里不再赘述。地址:http://push.baidu.com(2)当app能接收到推送的消息,那么要如何展示给用户呢?在项目的AppDelegate.m文件中①当app收到推送消息时,会自动调用- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler方法,在这个方法...
一、KVC简单介绍KVC key valued coding 键值编码KVC通过键值间接编码 补充:与KVC相对的时KVO,即key valued observer 键值观察。监听某一个模型的属性,只要模型属性的值一变化就通知你。二、使用KVC1.KVC基本使用介绍(1)代码示例:新建一个命令行项目,用以演示KVC的用法完成之后为项目添加一个Person类。为Person类添加两个属性(name和age),注意这两个属性的类型。1 #import <Foundation/Foundation.h>
2
3 @interface ...
写在前面:上次学习课程对iOS还是一知半解,由于缺乏实践,看公开课的视频有时不能很好地领会知识。带着问题去学习永远是最好的方法,接触一段时间iOS开发以后再来看斯坦福iOS公开课,又会有许多新的发现,对于已有的概念有了新的认识。这次课程笔记主要用作归纳知识点,整理学习思路,与大家讨论课后习题,交流等。第一课:iOS概述 1、iOS分层:①Core OS:核心操作系统层,基于UNIX内核(套接字,文件系统,电源管理,钥匙...
iOS开发网络篇—搭建本地服务器一、简单说明说明:提前下载好相关软件,且安装目录最好安装在全英文路径下。如果路径有中文名,那么可能会出现一些莫名其妙的问题。提示:提前准备好的软件apache-tomcat-6.0.41.tareclipse-jee-kepler-SR2-macosx-cocoa-x86_64.tar.gzjdk-8u5-macosx-x64.dmg二、安装和配置本地服务器环境(java)步骤:(1)在文档路径下,新建一个文件夹(NetWord),解压eclipse压缩包文件(2)先安装jdk (3)点击安装...
分享几个常用的Xcode插件。第一个, 规范注释生成器VVDocumenter。顾名思义, 它可以很方便的为你自动添加注释使用效果如下:下载链接:https://github.com/onevcat/VVDocumenter-Xcode使用说明:1.前往GitHub下载工程文件:VVDocumenter-Xcode2.用Xcode打开工程,Command + BBuild成功后,可以在~/Library/Application Support/Developer/Shared/Xcode/Plug-ins目录下看到生成的xcplugin文件:3.重启Xcode,在某个方法前输入三个“ / ”...
前言: 作为一个iOS开发,相信大家都会遇到类似于 “duplicate symbol” 的程序报错。 对于很多新手来说,可能会有点手足无措,因为这种类型的报错一般并非是代码的逻辑错误,大部分情况下是在编译过程出错导致的,因此相对来说排查不易。在前几天,我在引用了两个SDK的过程中出现了这个问题,运用不同的手段最终解决了这个问题。今天本文就这个错误进行一个详细的分析以及如何处理做一个探讨,如果有错误的地方还请指出。一、d...
在iOS5 系统中,苹果就已经有了检测人脸的api,能够检测人脸的位置,包括左右眼睛,以及嘴巴的位置,返回的信息是每个点位置。在 iOS7中,苹果又加入了检测是否微笑的功能。通过使用 CIDetector可以实现上述功能,一个小demo如下:#import <CoreImage/CoreImage.h> //首先包含响应的头文件/*** 用来存储检测到的信息*/
@property (nonatomic,strong) NSArray *features;//正式代码如下:
UIImage *image = [[UIImage alloc] ini...
平移动画//创建对象
CABasicAnimation *anim = [CABasicAnimation animation];
// keyPath决定了执行怎样的动画, 调整哪个属性来执行动画
anim.keyPath = @"position";// toValue : 最终变成什么值// byValue : 增加多少值
anim.byValue = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
anim.duration = 1.5;//执行动画的时间动画执行完,图层又会回到原来的地方,下面两句话是不让图层回到原来的地方
anim.remo...
iOS开发UI篇—APP主流UI框架结构一、简单示例说明:使用APP主流UI框架结构完成简单的界面搭建搭建页面效果: 二、搭建过程和注意点1.新建一个项目,把原有的控制器删除,添加UITabBarController控制器作为管理控制器2.对照界面完成搭建3.注意点:(1)隐藏工具条:配置一个属性,Hideabotton
bar在push的时候隐藏底部的bar在那个界面隐藏,就在哪个界面设置。(2).cell可以设置行高(3)连线 ...
一、前导程序新建一个项目,在主控制器文件中实现以下几行代码,就能轻松的完成图片在视图中的平铺。 1 #import "YYViewController.h"2 3 @interface YYViewController ()4 5 @end6 7 @implementation YYViewController8 9 - (void)viewDidLoad
10 {
11 [super viewDidLoad];
12
13 UIImage *image=[UIImage imageNamed:@"me"];
14 UIColor *color=[UIColor colorWithPatternImage:image];
15 self.view.backgrou...
#import"ViewController.h"@interface ViewController ()<UIGestureRecognizerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *imageV;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];//1.创建手势UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];//设置轻扫的方向(一个轻扫手势只能对应一个方向)swipe.directi...
1、改变高度
自定义UINavigationBar的新类别:
[cpp] view plaincopy//UINavigationBar+BackgoundImage.h #import <Foundation/Foundation.h> @interface UINavigationBar (BackgoundImage) @end 在新类别的实现中,覆盖原有类的方法 - (void)drawRect:(CGRect)rect :
[cpp] view plaincopy//UINavigationBar+BackgoundImage.m #import "UINavigationBar+BackgoundImage.h" @implementation UINavigationBar (Backgou...
当系统提供的类型不能达到我们的使用要求时,比如我想在CoreData中存储UIColor,该怎么办呢?这时候就要用到CoreData中非常强大的一个存储类型了:Transformable下面将通过一个例子简单介绍下如何存储像UIColor这种数据1、创建实体模型2、根据模型生成数据模型,并且创建用于转换Color的类,继承自NSValueTransform3、在.m文件中有4个必须实现的方法 1// 2// ColorTransformer.m3// CoreData自定义模型数据4// 5// Created by L...
自定义cell有两种方式:第一种:通过创建xib文件。①首先创建xib文件②创建xib文件对应 的模型A,名字与xib文件一样,并继承UITableViewCell类,并实现cellWithTableView的构造方法。③在interface builder里更改xib文件默认的类,为第二步创建的模型类。④创建数据模型B,并且A中包含数据模型B⑤A通过懒加载B方法(就是重写B对象的setter方法)将控件赋值。第二种:代码自定义cell①新建一个继承UITableViewCell的类,里面拥有fra...