ios开发学习笔记(1)
objective-c基础总结
第一二章
1.application:didiFinishLauchingWithOptions:程序启动后立即执行
2.启动界面代码格式:
self.window = [UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//1.从Infor.plist中取出版本号
NString *version = [NSBundle mainBundle].infoDictionary[key];
//2.从沙盒中取出上次存储的版本号
NSString *saveVersion = [[NSUserDefaults standaryUserDefaults] objectForKey:key];
if(([version isEqualToString:saveVersion])){
//如果不是第一次使用版本
//显示状态栏
application.statusBarHidden= NO;
//等待写
//self.window.rootViewController = [[*** alloc] init];
}
else
{
//版本号不一样 第一次使用新版本
//将新版本号写入沙盒
[[NSUserDefaults standardUserDefaults] setObject:version forkey:key];
[[NSUserDefaults standartUserDefaults] synchronize];
//显示版本新特性界面
self.window.rootViewController = [[*** alloc] init];
}
[self.window makeKeyAndVisible];
return YES;
3.管理快照:Xcode快照是一种功能有限的版本控制(适用于中小型项目)
4.CGRectMake使用前两个数值表示文本标签距离离屏幕上边缘和下边缘的位置,后两个数值表示文本标签的宽度和高度
5.info.plist结尾文件:描述项目本身的属性。必须在什么地方设置应用程序的图标、启动图像、支持的设备朝向等。项目导航器,可视化设置众多的plist选项
6.用于常规屏幕的图表明为Icon.png,而用于Retina屏幕的图标名为Icon@2x.png,当应用程序在使用Retina屏幕的设备上运行时,如果它被要求显示一幅图像,它将自动使用包含后缀@2x(名称与指定的名称相同)的图像资源。这让开发人员无需修改应用程序的任何代码就能支持Retina屏幕。还可以可视化Summary选线卡的Deployment Info部分设置启动图像。对于iPhone,只能设置纵向启动图像,但iPad支持横向和纵向启动图像。
7.设置状态栏:Status bar is initially Hidden(默认隐藏状态栏) NO显示状态栏
第三章 探索Apple平台语言Objective-C
1.(1)OOP(面向对象编程)使用的指令类型与过程型编程相称,但通过组织它们让应用程序易于维护,并尽可能重用代码。在OOP中,您将创建对象,其中存储了描述某种东西的数据以及操纵这些数据的指令。(2)OOP的另一个重要的方面是继承
2.术语介绍:
》类:定义对象及其功能的代码,通常由头文件/接口文件和实现文件组成。
》子类:建立在另一个类的基础之上并添加了额外的功能。您在iOS开发中使用的几乎任何东西都是其他某种东西的子类,它继承了父类的所有功能和属性
》超类/父类:另一个类继承的类
》单例:在程序的整个生命周期内,只能实例化一次的类。例如,获悉设备朝向的类被实现为单例,因为只有一个返回朝向信息的传感器。
》对象/实例:在代码中调用并出于活动状态的类。类是让对象能够工作的代码,而对象是处于活动状态的类。对象也被称为类的实例。
》实例化:根据类创建活动对象的过程
》实例方法:在类中实现的一项基本功能。对于提醒类,这可能是为给定提醒设置警报的setAlarm
》类方法:类似于实例方法,但使用与根据类创建的所有对象。
》消息:当您需要使用对象的方法时,您给对象发送一条信息,这有称为成为调用方法
》实例变量:对象特有的一项信息的存储位置。
》变量:信息的存储位置。不用于实例变量,常规变量通常只能在定义它的方法内使用。
》参数:调用方法时向它提供的一项信息。如果要调用提醒对象的“设置警报”方法,则必须提供要设置的时间。在这种情况下,该时间将是setAlarm方法的一个参数
》属性:使用特殊编译指令配置的一个实例变量,这样可在代码中方便地访问它
》Self:一种在方法中引用当前对象的方式。在应用程序中使用实例方法或属性时,必须使用特定对象限定它。在类中编写访问其方法或属性的代码时,可使用self来引用当前对象。
3.类的接口文件和实现文件的名称通常与类名相同。.h接口文件 .m实现文件。协议是Objective-C特有的一种功能,需要编写的方法被集合在一起,并用同一个名称标识,这被称为协议
4.@property编译指令,与另一个名为synthesize的命令结合使用,以简化与接口中定义的实例变量的交互方式。@property和@synthesize的作用是为编写设置函数和获取函数,并且优雅方便使用
5.在编译指令@property中指定属性(strong,nonatomic)告诉Xcode如何处理属性引用的。属性(attribute)strong 告诉系统,保留引用的对象,而不要将其从内存中删除。属性(nonatomic)告诉Xcode,不用担心应用程序的不同部分同时使用该属性的问题。
6.+类方法,-实例方法。
7.定义方法1:+(方法返回的类型)方法名:(方法期望的信息类型)引用该信息的变量名, 定义方法2:+(方法返回的类型)方法名:(方法期望的信息类型)引用该信息的变量名 添加简短的描述标签:数据类型:变量名
8.如果您不知道将给方法传递什么或希望能够从同一个方法返回不同类型的对象,id类型很有用
9.使用@property和@synthesize 结合可以使我们能够以直观的方式访问和修改实例变量
10.@implementation myclass 告诉Xcode该文件实现那个类
11.使用方法被称为给对象发送信息
12.有一些(循环引用)ARC 无法清理,A引用B B引用C C引用D D引用B 循环引用 ,A可以使用完对象B 但BCD存在循环引用,将无法释放这三个对象,避免这样的问题可以使用弱引用(Weak reference)
第四章:Cocoa Touch内幕
1.Apple每个iOS应用程序模板中都包括三个重要框架(CoreGraphics、Foundation、UIKit)
2.Cocoa Touch层:(1)UIKit:负责启动和结束应用程序、控制界面和多点触摸,并让您能够访问常见的数据视图(Word Excel)(2)Map Kit:让开发人员在任何应用程序中添加Goodle地图视图,包括标注、定位、事件处理功能(3)Game Kit:网络交互性(4)Message UI/Address Book UI/Event Kit UI:应用程序之间集成需求(5)iAd:使应用程序加入广告
3.多媒体层:(1)AV Foundation:用于播放和编辑复杂的音频和视频。如电影录制、音轨管理和音频平移(2)Core Audio:提供iPhone中播放和录制音频的方法(3)Core Image:开发人员在应用程序添加高级图像和视频处理功能(4)Core Graphics:添加2D回话和合成功能(5)对iPhone屏幕上显示的文本进行精确的定位和控制(6)Image I/O:导入与导出图像数据和图像元数据(7)Media Player:使用典型的屏幕空间轻松地播放电影(8)OpenGL ES:创建2D 3D动画(9)Quartz Core用于创建动画:利用设备的硬件功能
4.核心服务层:(1)Accounts:用于存储众多不同服务的账号信息(2)Address Book:用于直接访问和操作地址薄(3)CFNetwork:访问BSD套接字、HTTP和FTP协议请求以及Bonjour发现(4)Core Data:创建数据模型提供一个SQLite关系的数据库模型
(5)Core Foundation:与Foundation框架相同(6)Foundation:提供一个封装器(操作字符串 数组和字典都是通过Foundation框架进行的)(7)Event Kit:访问存储的日历信息(8)Core Location:用于iPhone iPad 3G GPS获取经纬度和测量精度
(9)Core Motion:管理大部分与运动相关的事件:使用加速剂和陀螺仪(10)Quick Look:实现文件浏览功能(11)Store Kit:创建购买实物(12)System Configuration:用于确定设备网络配置的当前状态
5.核心OS层:(1)Accelerate:简化计算和大数据操作任务,包括数字信号处理功能
(2)External Accessory:用于开发到配件的借口(3)Security:提供执行加密(添加 删除 修改密钥项)(4)System:访问不受限制的UNIX开发环境当中一些典型的工具
6.根类(NSObjct)应用程序类(UIApplication)窗口类(UIWindow)视图(UIView)响应者(UIResponder)屏幕控件(UIControl)视图控制图UIController
7.字符串NSString/NSMutableString其中NSMutableString可用与创建可被修改的字符串。NSString在初始化后就不可改变,NsMutableString可以修改(加长、缩短、替换等)
8.数组(NSArray/NSMutableArray)
9.字典(NSDictionary/NSMutableDictionary)字典以键值对形式存在
10.数字(NSNumber/NSDecimalNumber)可以将数字作为对象轻松加入数组或字典中,NSDecimalNumber是NSNumber的一个子类
11.日期(NSData)
12.网址(URL)
13界面类:标签(UILabel)按钮(UIButton)开关(UISwitch)分段控件(UISegmentedControl)滑块(UISlider)步进控件(UIStepper)文本框(UITextField/UITextView)选择器(UIDatePicker/UIPicker)弹出框(UIPopoverController)
第五章:Cocoa Touch内幕
1.实例化指的是创建对象的实例,让您能够在程序当中使用,获得其类当中的所有功能
2.IB(Interface Builder)故事板 打开storyboard显示该故事板的文件骨架
第六章:模型-视图-控制器的应用程序设计
1.视图控制器可包含应用程序逻辑,但这不以为着所有代码都包含视图控制器中。可以在核实的时候定义额外的类,已抽象应用程序逻辑
2.使用IBOutlet:用于让代码能够与视图中的对象交互(例如:@property(strong,nonatomic) UILbel *myLabel1与:@property(strong,nonatomic) IBOutlet UILbel *myLabel1配套使用)
3.对于接口文件.h中的每个编译指令@property实现文件.m中都必须有对应的编译智力高@synthesize
4.使用IBAction:用于指出在特定的事件发生时应调用代码中相应的方法。(例如用户点击了某个按钮或更新了文本框)采取相应的措施
5.AppDelegate.h 和AppDelegate.m组成了该项目将创建的UIAppkucation实例的委托,可对文件进行编辑,已添加控制应用程序运行时如何工作的方法。
6.ViewController.h ViewController.m实现一个视图控制器(UIViewControoler)这个类包含控制试图的逻辑。
7.确保使用完试图后,在代码中定义的实例变量不再指向对象。可以将实例变量对应的属性设置为nil这样这些文本框和标签占用的内存可被重用
ios开发学习笔记(1)的更多相关文章
- iOS开发学习笔记:基础篇
iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境 ...
- iOS开发学习笔记
1 常用的第三方工具 1.1 iPhone Simulator 测试程序需要模拟器iPhone Simulator 1.2 设计界面需要Interface Builder,Interface Buil ...
- ios开发学习笔记(这里一定有你想要的东西,全部免费)
1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [ ...
- IOS开发学习笔记017-第一个IOS应用
第一个IOS应用程序,就从最简单的开始吧. 1.先了解一下开发环境,Xcode的相关组成 2.还有模拟器 3.运行与停止按钮 4.新建一个工程 5.看看main函数里都有啥 6.现在来添加一个控件 1 ...
- (ios开发学习笔记一)ios项目文件结构
转自:http://www.cnblogs.com/macroxu-1982/archive/2012/07/31/2616389.html 下面是单个窗体项目例子,我们从这个项目开始,说明ios项目 ...
- ios开发学习笔记040-autolayout 第三方框架Masonry
不管是是界面创建约束还是代码创建约束,苹果官方提供的方式都比较繁琐.所以出现了第三方框架. Masonry 在github地址如下: https://github.com/SnapKit/Masonr ...
- IOS开发学习笔记026-UITableView的使用
UITableView的简单使用过程 简单介绍 两种样式 UITableViewStylePlain UITableViewStyleGrouped 数据显示需要设置数据源,数据源是符合遵守协议 &l ...
- IOS开发学习笔记021-练习2
只是简单练习一下,主要是学习里面的思想,处理问题的方法. 不过还有一个问题没想到解决方法. 那就是动态生成的按钮如何绑定按钮事件,请哪位大神指点一下啊.(知道怎么办了,原来是方法addTarget) ...
- IOS开发学习笔记016-Foundation框架
Foundation 框架的学习 一.Foundation 常用结构体 1.NSRange(location,length) typedef struct _NSRange { NSUIntege ...
随机推荐
- J2SE知识点摘记(十八)
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1) Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复 ...
- Java学习疑惑(8)----可视化编程, 对Java中事件驱动模型的理解
我们编写程序就是为了方便用户使用, 我觉得UI设计的核心就是简洁, 操作过于繁琐的程序让很大一部分用户敬而远之. 即使功能强大, 但是人们更愿意使用易于操作的软件. 近年流行起来的操作手势和逐渐趋于成 ...
- 计算机原理学习(2)-- 存储器和I/O设备和总线
前言 前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理.这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的. 这些东西都 ...
- poj2823_单调队列简单入门
题目链接:http://poj.org/problem?id=2823 #include<iostream> #include<cstdio> #define M 100000 ...
- 【.NET】使用HtmlAgilityPack抓取网页数据
刚刚学习了XPath路径表达式,主要是对XML文档中的节点进行搜索,通过XPath表达式可以对XML文档中的节点位置进行快速定位和访问,html也是也是一种类似于xml的标记语言,但是语法没有那么 ...
- [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(九)
目的 1. 使用verilog/vhdl设计一个PCI的watchdog设备. 2. 通过systemverilog 写testbench. 很久之前研究过AC97的verilog代码.但是很久没用v ...
- Android UI学习组件概述
Android的UI组件繁多,如果学习的时候不能自己总结和分类而是学一个记一个不去思考和学习他们内在的联系那真的是只有做Farmer的命了.为了向注定成为Farmer的命运抗争,在学习Android的 ...
- Dyanmics CRM您无法登陆系统。原因可能是您的用户记录或所属的业务部门在Microoft Dynamics CRM中已被禁用
当在操作CRM时,做不论什么的写操作包含创建数据.更新数据.都会提示以下截图中的错误:"您无法登陆系统.原因可能是您的用户记录或所属的业务部门在Microoft Dynamics CRM中已 ...
- hdu - 1757 - A Simple Math Problem
题意:当x < 10时, f(x) = x: 当x >= 10 时,f(x) = a0 * f(x-1) + a1 * f(x-2) + + a2 * f(x-3) + …… + a9 ...
- visio 2013 破解工具 - KMSpico
背景:环境是 win7, 64 bit装了 visio 2013 , 可以却不能用它来画图,在网上找了一些破解工具,大都不能解决问题.网上不靠谱的广告型文章太多了,比较头痛. 所幸,终于找到正确的破解 ...