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屏幕的图标名为[email protected],当应用程序在使用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特有的一种功能,需要编写的方法被集合在一起,并用同一个名称标识,这被称为协议

[email protected]编译指令,与另一个名为synthesize的命令结合使用,以简化与接口中定义的实例变量的交互方式。@property和@synthesize的作用是为编写设置函数和获取函数,并且优雅方便使用

5.在编译指令@property中指定属性(strong,nonatomic)告诉Xcode如何处理属性引用的。属性(attribute)strong 告诉系统,保留引用的对象,而不要将其从内存中删除。属性(nonatomic)告诉Xcode,不用担心应用程序的不同部分同时使用该属性的问题。

6.+类方法,-实例方法。

7.定义方法1:+(方法返回的类型)方法名:(方法期望的信息类型)引用该信息的变量名, 定义方法2:+(方法返回的类型)方法名:(方法期望的信息类型)引用该信息的变量名 添加简短的描述标签:数据类型:变量名

8.如果您不知道将给方法传递什么或希望能够从同一个方法返回不同类型的对象,id类型很有用

9.使用@property和@synthesize 结合可以使我们能够以直观的方式访问和修改实例变量

[email protected] 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这样这些文本框和标签占用的内存可被重用

时间: 2024-08-04 06:53:33

ios开发学习笔记(1)的相关文章

IOS开发学习笔记-(2)键盘控制,键盘类型设置,alert 对话框

一.关闭键盘,放弃第一响应者,处理思路有两种 ① 使用文本框的 Did End on Exit 绑定事件 ② UIControl on Touch 事件 都去操作 sender 的  resignFirstResponder #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtUserName; @pro

iOS开发学习笔记:基础篇

iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器.调试.模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行. 创建新工程 Xcode提供了很多种工程模

IOS开发学习笔记-(3) 进度条、等待动画开始停止

一.创建对应空间视图  ,如下图: 二.编写对应的 .h 代码,如下 : #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activWaitNetWork; @property (weak, nonatomic) IBOutlet UIProgressView *pgrsDownLo

IOS开发学习笔记(二)-语音识别(科大讯飞)

上次简单地讲解了如何利用科大讯飞完成语音合成,今天接着也把语音识别整理一下.当然,写代码前我们需要做的一些工作(如申请appid.导库),在上一篇语音合成的文章当中已经说过了,不了解的可以看看我上次的博文,那么这次直接从堆代码开始吧. 详细步骤: 1.导完类库之后,在工程里添加好用的头文件.在视图里只用了一个UITextField显示识别的内容,两个UIButton(一个开始监听语音,一个结束监听),然后引入类.添加代理,和语音合成的一样. MainViewController.h 1 #imp

IOS开发学习笔记(1)-----UILabel 详解

1. [代码][C/C++]代码     //创建uilabelUILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)];//设置背景色label1.backgroundColor = [UIColor grayColor];//设置taglabel1.tag = 91;//设置标签文本label1.text = @"Hello world!";//设置标签文本字体和字体大小label1.

IOS开发学习笔记(2)-----UIButton 详解

1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];    //    能够定义的button类型有以下6种,//    typedef enum {//        UIButtonTypeCustom = 0,          自定义风格//        UIButtonTypeRoundedRect,        

IOS开发学习笔记--语音合成(科大讯飞)

      现在语音服务越来越热,我们平时使用的很多软件都带有语音合成和识别功能,用起来也很方便.说到语音服务,Google和微软都提供过API接口,不过笔者要介绍的是国内的智能语音技术提供商---科大讯飞.之前看过一个比较Google.微软和科大讯飞语音识别引擎的博文(http://fqctyj.blog.163.com/blog/static/70843455201361955322797/),有兴趣可以去看看.笔者接触语音服务的时间也不长,对语音服务也不是很了解,但是拆解过科大讯飞的Dem

IOS开发学习笔记017-什么是IOS开发

应用程序开发流程 1.IOS开发需要思考的问题 用户是谁?不同应用程序的内容和用户体验大不相同,这取决于想要编写的是什么应用程序,它可能是儿童游戏,也可能是待办事项列表应用程序,又或者是测试自己学习成果的应用程序. 应用程序的用途是什么?赋予应用程序一个明确的用途十分重要.了解激发用户使用应用程序的动因是界定用途的一个出发点. 应用程序尝试解决什么问题?应用程序应该完美解决单个问题,而不是尝试解决多个截然不同的问题.如果发现应用程序尝试解决不相关的问题,那么最好考虑编写多个应用程序. 应用程序要

iOS 开发学习笔记

最近想学习下iOS的开发,在网易公开课上找了个课程,准备先听一下这个课程,做为入门吧. 课程的名字是:斯坦福大学公开课:iPad和iPhone应用开发(iOS5) 链接:http://open.163.com/special/opencourse/ipadandiphoneapplication.html 今天听了第一课,大概讲了如下的内容: iOS overview iOS devided 4 layers: core os: unix kernel and C API core servic