iOS开发学习路线图
一、框架(共享一切的API接口,是个接口的集合)
1.什么是框架 图1
2.iOS框架和服务:
/*
CocoaTouch 用户交互层 UIKit
Media 媒体层 Core Graphics
CoreService 核心服务层 Foundation
CoreOS核心操作层 C实现和硬件打交道
3.
UIKit框架提供创建基于用户交互的类
UIKit框架提供的类用于创建基于交互的用户界面,所有iOS应用程序都是基于UIKit,没有这个框架,就无法交付应用程序。UIKite提供应用程序的基础框架,用于在屏幕上绘图、处理事件,以及创建通用用户界面及其中元素。UIKite还通过管理屏幕上显示的内容,来组织应用程序。
使用UIKit可以:
构建和管理你的用户界面
捕获触摸和基于移动的事件 (愤怒的小鸟触摸 gps导航 移动)
呈现文字和web内容(UILabel WebView)
优化你的多任务程序
创建定制的用户界面元素
4.
Foundation框架为所有的应用程序提供基本系统服务:
你的应用程序,UIKit和其他的框架都是建立在Foundation框架上面的。Foundation框架是用Object-C对Core Foundation框架里许多特性的封装
使用Foundation可以:
创建和管理集合,比如数组NSArray-NSDictionary
访问存储在应用程序里的图片和其他资源 UIImage
创建和管理字符串 NSString
提交和接受通知 NSNotification
创建日期和事件对象 NSDate-NSCalender
自动发现IP网络上的设备 AirDrop
操作URL之流 NSURL
执行异步代码 NSThread - NSOperationQueue
5.
框架使用建议:
1.低层次框架提供IOS的基本服务和技术,高层次框架建立在低层次框架之上,用来提供更加复杂的服务和技术,较高级的框架向较低级的结构提供面向对象的抽象
2.在开发应用时应尽可能使用高级框架,如果要开发的内容在高层框架中没有提供,也可以用低层框架和技术
二、foudation里的对象 NSString
1.一切皆对象 如图
2.使用
三种使用方式:创建常量字符串对象 调用alloc和initWith来创建字符串对象 按照一定格式创建字符串对象
//
// main.m
// 框架
//
// Created by tusm on 15-9-19.
// Copyright (c) 2015年 tusm. All rights reserved.
//
#import
int main(int argc, const char * argv[])
{
@autoreleasepool {
//1.创建常量字符串对象
NSString *bookName = @"简爱";
NSString *author=@"夏洛蒂·勃朗特";
NSLog(@"%@",bookName);
//2.调用alloc和initWithString来创建字符串对象
NSString *author2=[[[NSString alloc]initWithString:author]autorelease];
//常量字符串init不合适,这样只是创建一个空的。所以用字符串创建另一个字符串
//使用便利器创建一个对象 推荐使用 不用管内存管理
NSString *author3=[NSString stringWithString:author];//没有拥有权
//3.按照一定的格式创建一个字符串对象(字符串的拼接)
NSString *catelog=[[NSString alloc]initWithFormat:@"%@.%@",bookName,author];
NSString *catelog2=[NSString stringWithFormat:@"书名:%@作者:%@",bookName,author];
NSLog(@"%@",catelog2);
NSString *name=@"Jack";
int age=10;
NSString *personStr=[NSString stringWithFormat:@"My name is %@,and my age is %d",name,age];
NSLog(@"%@",personStr);
}
return 0;
}
三、子字符串操作和比较前后缀拼接
command+单机进NSString会看到:
@interface NSString (NSStringExtensionMethods) 类别
系统给NSString加了很多新方法,如下图:
代码部分待补充。。
上图这个,比较是否相同和大小,需要了解下。
四、NSMutableString
NSString 不可变字符串,不可增删改
MutableString 可变 继承于NSString,所以NSString的方法它都可以用的
添加了部分方法,即增删改。
注意:可MSMutableString *mString =[[NSMutableString alloc]init];是可以的啦,因为init个空的也是可以改变的。和NSString不一样嗷~
代码还是没有啊暂时
常犯的错误:
两者打印的结果都是《家 春 秋》鲁滨逊漂流记
为什么name也打印的这个?
因为name是个指针,指向bookName,是同一块内存,而其内容发生了增改,所以name也是同样结果啦。
改正办法:
copy是复制一片出来,内存不同,所以打印的是《家春秋》。
实战:计算某个字符串中单词的个数,并将单词输出。