IOS开发复习笔记(3)-ARC】的更多相关文章

在上班之余学习IOS已经有三个多月了,因为基础有些薄弱从OC的基本语法开始学习的,相继看了青柚子和红柚子的书,现在在看编程实战,趁这个机会好好的总结一下: 1.命名约定 对象类型和名称一致,以免混淆 -(void) setURL:(NSString *)URL;//错误的命名方法 //更改为 -(void)setURLString:(NSString *)string; -(void)setURL:(NSURL *)URL; 静态变量(包括作用域)以s开头,而全集变量采用g开头,在通常情况下应避…
1.ARC 当你自己调用了release或retain语句的时候,ARC有效时编译文件会遇到错误,你可以通过-fno-objc-arc和-fobjc-arc两个编译器标志在混搭中支持ARC和非ARC的代码 如下面编译支持ARC,而文件代码不支持ARC # if !__has_feature(objc_arc) //this code do not support to ARC -(void) release{ //release your var } #endif 在ARC工程中集成非ARC的第…
总结几个TableView常用的代码 1.初始化方面 static string CellIndetifier=@"cellIndetifier"; -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ ;//表中段数 } -(NSInterger)tableView:(UITableVIew *)tableView numberOfRowsInSection:(NSInteger)section{ retr…
以下是关于内存管理的学习笔记:引用计数与ARC. iOS5以前自动引用计数(ARC)是在MacOS X 10.7与iOS 5中引入一项新技术,用于代替之前的手工引用计数MRC(Manual Reference Counting)管理Objective-C中的对象[官方也叫MRR(Manual Retain Release)].如今,ARC下的iOS项目几乎把所有内存管理事宜都交给编译器来决定,而开发者只需专注于业务逻辑. 但是,对于iOS开发来说,内存管理是个很重要的概念,如果先要写出内存使用效…
iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器.调试.模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行.   创建新工程   Xcode提供了很多…
objective-c基础总结 第一二章 1.application:didiFinishLauchingWithOptions:程序启动后立即执行 2.启动界面代码格式:self.window = [UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//1.从Infor.plist中取出版本号NString *version = [NSBundle mainBundle].infoDictionary[key];//2.…
Mac常用操作 全屏截图:同时按住键盘左下方的command和shift   ,然后点击键盘上方的数字键3,便可对整个屏幕截图,截图会自动保存在桌面:任意部分截图:同时按住键盘左下方的ommand和shift,然后点击键盘上方的数字键4 模拟器操作 Home键:command+shift+H 关闭后台应用程序:command+shift+H+H输入中文:Product->scheme->Edit Scheme->Options->Application Region改为中国搜索栏获…
1 常用的第三方工具 1.1 iPhone Simulator 测试程序需要模拟器iPhone Simulator 1.2 设计界面需要Interface Builder,Interface Builder(IB)中将视图拖拽到窗口上并将各种视图连接到插座变量和动作上, 这样它们就能以编程方式与代码交互.IB使用Nib文件储存GUI资源,同时适用于Cocoa和Carbon程序.在需要的时候,Nib文件可以被快速地载入内存. 2 iOS的常用开发框架 2.1 Foundation框架,该框架允许使…
1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [[self.searchBar.subviews objectAtIndex:0] removeFromSuperview]; 2,NSDate: 字母  日期或时间元素    表示     示例 G     Era   标志符     Text     AD y     年     Year   …
第一个IOS应用程序,就从最简单的开始吧. 1.先了解一下开发环境,Xcode的相关组成 2.还有模拟器 3.运行与停止按钮 4.新建一个工程 5.看看main函数里都有啥 6.现在来添加一个控件 1.先了解一下开发环境,Xcode的相关组成 2.还有模拟器 可以在菜单Xcode-->Open Developer Tool-->IOS Simulator 打开模拟器 3.运行与停止按钮 4.新建一个工程,可以运行一下看看效果,在模拟器里只是一个白色的窗口. 5.看看main函数里都有啥 #im…
ARC 1.ARC机制 2.ARC 判断准则 3.注意事项 4.ARC和非ARC混合使用 ARC机制 ARC 是编译器特性,而不是 iOS 运行时特性,它也不是类似于其它语言中的垃圾收集器.因此 ARC 和手动内存管理性能是一样的,有时还能更加快速,因为编译器还可以执行某些优化 ARC 判断准则: 只要没有强指针,就会释放对象. 指针分2种: 强指针:默认都是强指针  (__strong) __strong Person *p; //  __strong 可以不写,默认就是__strong 弱指…
内存管理 1.基本知识 2.关闭ARC机制 3.@property 4.循环引用 5.自动释放池 6.内存管理总结 一.基本知识 内存的分类 栈:局部变量 堆:动态申请的对象,变量等 全局(静态):static 变量,const变量,全局变量等 引用计数器  每个OC对象都有自己的引用计数器,是一个整数,表示“对象被引用的次数”,即有多少人正在使用这个OC对象 每个OC对象内部专门有4个字节的存储空间来存储引用计数器  作用 当使用alloc.new或者copy创建一个新对象时,新对象的引用计数…
今天的奇葩错误,最后解决方式是删除了手机上面的快捷方式,然后再clean,然后再重启了xcode.无语了,xcode也经常出些奇葩问题,真无语啊. ios技术交流群:378501081..期待你加入..…
转自:http://www.cnblogs.com/macroxu-1982/archive/2012/07/31/2616389.html 下面是单个窗体项目例子,我们从这个项目开始,说明ios项目文件结构. 项目清单说明: 1 supporting files 文件夹 supporting files中放置了项目支持文件,下面是各种文件功能说明 helloword-info.plish 文件 :放置项目属性:如icon,项目显示名称,版本号等. infoplist.strings文件:放置项…
适用于ARC & MRC // 帮助实现单例设计模式 // .h文件的实现 #define SingletonH(methodName) + (instancetype)shared##methodName; // .m文件的实现 #if __has_feature(objc_arc) // 是ARC #define SingletonM(methodName) \ static id _instace = nil; \ + (id)allocWithZone:(struct _NSZone *…
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/31462099 作者:小马 这节课的内容太多,分两部分介绍.本节课主要是介绍怎样开发基于ipad的应用程序.涉及到了一些仅仅有ipad才有的类,接口等. 先讲到UIToolbar工具栏.经常使用的UI控件.在工具栏上button一样的东西叫UIBarButtonItems,能够像一般button一样操作它,比方建立outlet,action等.使用的时候仅仅要从工具箱里拖到视图中就…
不管是是界面创建约束还是代码创建约束,苹果官方提供的方式都比较繁琐.所以出现了第三方框架. Masonry 在github地址如下: https://github.com/SnapKit/Masonry 如果需要通过代码手动添加约束,Masonry真的是一个不错的选择,大大增加开发效率,何乐而不为呢. Autolayout - Masonry 使用步骤 添加Masonry文件夹的所有源代码到项目中 添加2个宏.导入主头文件 // 只要添加了这个宏,就不用带mas_前缀 #define MAS_S…
自己做了一遍,现在再复习一下,总结一下. 最终效果如下         1.新建一个工程Single View Application 总体如下 不过要关闭自动布局功能 这是按下设置按钮显示的界面默认是隐藏的,可以在设置时改变坐标显示出来,之后在隐藏 关于导入图片: 可以新建一个组,将图片拖拽到文件夹里. 给各个组件设置默认值,这里准备的时16张图片,所以都是按16张算得 顶部默认是1/16 滑动条是0到15,默认是0 图片默认显示 0.png 2.然后给各个需要的控件添加属性和监听事件 如下:…
流程控制 顺序结构.选择结构.循环结构 1.顺序结构 程序默认是顺序执行的. 2.选择结构 if选择语句 第一种情况 if(条件)//条件成立执行下面语句 { //语句 } 第二种情况 if(条件)//条件成立执行下面语句,否则执行else里面的语句 { //语句 } else { //语句 }   第三种情况 if(条件1)//条件1成立执行下面语句,否则执行下面else if 里面的语句 { //语句1 } else if(条件2)//条件2成立执行下面语句,否则执行else if 里面的语…
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/28398697 作者:小马 这节课主要讲述多个MVC是怎样协同工作的.到眼下为止.全部的课程都仅仅是涉及到一个视图.从这节课開始,将会持到多视图应用的样例. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcG9ueV9tYWdnaWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissol…
为什么有initWithCoder还要awakeFromNib? awakeFromNib相较于initWithCoder的优势是:当awakeFromNib执行的时候,各种IBOutlet也都连接好了:而initWithCoder调用的时候,虽然子视图已经被添加到视图层级中,但是还没有引用.如果你是基于xib或storyboard创建的控件,那么你可能需要对IBOutlet连接的子控件进行初始化工作,这种情况下,你只能在awakeFromNib里进行处理.同时xib或storyboard对灵活…
本文转载至 http://www.cnblogs.com/songliquan/p/4548206.html 1.代码实现比较复杂 代码实现Autolayout的步骤 利用NSLayoutConstraint类创建具体的约束对象 添加约束对象到相应的view上 1 - (void)addConstraint:(NSLayoutConstraint *)constraint; 2 3 - (void)addConstraints:(NSArray *)constraints; 代码实现Autola…
QQ聊天界面实现 效果如下: 实现过程: 1.首先实现基本界面 头像使用 UIImageView : 文字消息使用 UIButton 标签使用 UILable :水平居中 所有元素在一个cell中,在加载cell时进行判断显示和隐藏. 合理设置各个控件之间的约束关系.主要是UIIimageVIew和UIButton顶部对齐,间距为10.UIButton的宽度设置一个约束范围,比如说 (>=60 &&  <=300); 底部添加一个UIView ,添加输入框等. 2.创建模型文件…
一.自定义非等高的cell         如常见的微博界面,有的微博只有文字,有的有文字和图片.这些微博的高度不固定需要重新计算. 这里简单说一下几种方法.前面的步骤和设置等高的cell一样.现在来说说不一样的地方.         效果如下:   1.在storyboard\xib里实现如下界面 使用自动布局添加约束,在xib里创建和在storyboard非常类似. 2.计算cell高度     2.1.在模型类中给每个cell添加一个高度属性      // cell高度     @pro…
一.UITableView的常用属性 1.分割线 // 分割线 self.tableView.separatorColor = [UIColorredColor]; // 隐藏分割线 self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 2.选中样式 // cell选中样式,貌似几个枚举效果都一样 cell.selectionStyle = UITableViewCellSelectionStyleBlue; //…
在storyboard/xib文件中实现自动布局 autolayout 1.注意事项 autolayout和frame属性是有冲突的,所以如果准备使用autolayout,就不要再代码中对控件的frame属性进行操作. 设置autolayout必须设置完全,必须包括位置信息和尺寸信息.也就是说必须有宽高和坐标位置,缺一不可. 2.简单示例 两个view(redView和blueView),等高等宽,redView距离左边和下边间距都是20,距离blueView间距也是20.blueView距离右…
九宫格布局,用手机输入法时经常见到.先按3行3列写. 代码的实现主要是计算插入图片的位置. 每一张图片的位置和所在的行列密切相关.分析过程如下: 界面: 代码实现 1.把需要的图片资源添加进来 然后给界面添加两个按钮,一个删除按钮,一个添加按钮.和一个lable表示图片状态. // 添加按钮 - (UIButton *)addButtonWithImage:(NSString *)image highImage:(NSString *)highImage disableImage:(NSStri…
实现scrollView的自动循环滚动,需要实现几个方法. 其中scrollView中始终保存三张图片,其他的图片在滚动到时再进行加载. 循环的实现主要是在setUpdate 中,如果索引为0是第一个,索引为2是最后一个,这是对索引值进行改变.第一个后接着显示最后一个,最后一个后接着显示第一个.依次循环. 分析过程为: 1.首先是set方法 setImageNames #pragma mark - setter方法重写 - (void)setImageNames:(NSArray *)image…
让图片自动滚动的话,需要使使用定时器,循环计算当前页的页码.并且在拖动图片时停止计时器,停止拖动时启动计时器. 定时器 方法1: performSelector [self performSelector:@selector(hideHUD) withObject:nil afterDelay:2.0]; - (void)hideHUD { _hudLable.hidden = YES; } 方法2: GCD dispatch_after(dispatch_time(DISPATCH_TIME_…
通过xib实现分页功能的封装 1.首先实现xib UIView 的尺寸为300*130,因为准备的图片为600*260. scrollView属性设置如下: 2.新建一个和xib同名的类 2.1 类方法,返回xib对象 + (instancetype)pageScroll { // NSStringFromClass 将类名转换成字符串,xib文件名和类名一样 return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self)…