2015.9.19 第十二堂 NSString

        iOS开发学习路线图


2015.9.19 第十二堂 NSString_第1张图片

        一、框架(共享一切的API接口,是个接口的集合)

        1.什么是框架 1

2015.9.19 第十二堂 NSString_第2张图片        

        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-CCore Foundation框架里许多特性的封装

         使用Foundation可以:

         创建和管理集合,比如数组NSArray-NSDictionary

         访问存储在应用程序里的图片和其他资源 UIImage

         创建和管理字符串 NSString

         提交和接受通知 NSNotification

         创建日期和事件对象 NSDate-NSCalender

         自动发现IP网络上的设备 AirDrop

         操作URL之流 NSURL

         执行异步代码 NSThread - NSOperationQueue

         

         5.

         框架使用建议:

         1.低层次框架提供IOS的基本服务和技术,高层次框架建立在低层次框架之上,用来提供更加复杂的服务和技术,较高级的框架向较低级的结构提供面向对象的抽象

         2.在开发应用时应尽可能使用高级框架,如果要开发的内容在高层框架中没有提供,也可以用低层框架和技术

        

         


        

        二、foudation里的对象 NSString

         1.一切皆对象 如图

2015.9.19 第十二堂 NSString_第3张图片

         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加了很多新方法,如下图:

2015.9.19 第十二堂 NSString_第4张图片


代码部分待补充。。




2015.9.19 第十二堂 NSString_第5张图片

上图这个,比较是否相同和大小,需要了解下。


2015.9.19 第十二堂 NSString_第6张图片


四、NSMutableString

NSString 不可变字符串,不可增删改

MutableString 可变 继承于NSString,所以NSString的方法它都可以用的


添加了部分方法,即增删改。

注意:可MSMutableString *mString =[[NSMutableString alloc]init];是可以的啦,因为init个空的也是可以改变的。和NSString不一样嗷~


代码还是没有啊暂时

常犯的错误:

2015.9.19 第十二堂 NSString_第7张图片

两者打印的结果都是《家 春 秋》鲁滨逊漂流记

为什么name也打印的这个?

因为name是个指针,指向bookName,是同一块内存,而其内容发生了增改,所以name也是同样结果啦。


改正办法:

2015.9.19 第十二堂 NSString_第8张图片

copy是复制一片出来,内存不同,所以打印的是《家春秋》。


实战:计算某个字符串中单词的个数,并将单词输出。


你可能感兴趣的:(2015.9.19 第十二堂 NSString)