zoukankan      html  css  js  c++  java
  • Foundation框架1

    • 什么是框架
      • 众多功能API的集合
    • Foundation框架的作用
      • Foundation框架是MaciOS中其他框架的基础
      • Foundation框架包含了很多开发中常用的数据类型
        • 结构体
        • 枚举
    • 如何使用Foundation框架
      • 要想使用Foundation框架中的功能,包含它的主文件即可

      #import <Foundation/Foundation.h>

    Foundation框架中的类

    • Foundation框架提供了非常多好用的类,比如
      • NSString:字符串
      • NSArray:数组
      • NSDictionary:字典
      • NSDate:日期
      • NSData:数据
      • NSNumber:数字
    • Fouondation框架中的类都是以NS为前缀[Next Step]
      • 乔布斯于1976年创立苹果公司
      • 乔布斯于1985年离开苹果公司,创立Next公司,开发了Next Step操作系统
      • 在开发Next Step操作系统过程中产生了Foundation框架
      • 1997年,苹果公司收购Next公司,乔布斯重返苹果公司(Mac系统就是基于Next Step系统)
      • 2007年,苹果公司发布了iOS系统(iOS系统基于Mac系统)

    不小心修改了系统文件

    • 有时候会在不经意之间修改了系统自带的头文件,比如NSString.h,这是会出现以下错误

      • 解决方案很简单,只需要删除Xcode的缓存即可,缓存路径是
        • /User/用户名/Library/Developer/Xcode/DerivedData(默认情况下,这是一个隐藏文件夹)
      • 要想看到上述文件夹,必须在终端敲指令显示隐藏文件夹,指令如下
        • 显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles - bool true
        • 隐藏隐藏文件:defaults write com.apple.finder AppleShowAllFiles - bool false

          (输入指令后,一定要重新启动Finder)

    NSString

    • 什么是NSString
      • 一个NSString对象就代表一个字符串(文字内容)
      • 一般称NSString为字符串类
    • 下图中的文字内容普遍都是用NSString来表示的

    NSString的创建

    • NSString的创建方式比较多
      • 最直接的方式(这是常量字符串)
        • NSString *str = @"I'm in itcast";
      • 格式化的方式
        • NSString *str = [NSString stringWithFormat:@"My age is %d",10];
        • NSString *str = [[NSSring alloc] initWithForm:@"My age is %d",10];
      • 从文件中读取
    //用来保存错误信息
    NSError *error = nil;
    //读取文件内容
    NSString *str = [NSString stringWithContentsOfFile:@"/Users/mj/Desktop/text.txt" encoding:NSUTF8StringEncoding error:&error];
    //如果有错误信息
    if (error) {
      NSLog(@"读取失败,错误原因是:%@",[error localizedDescription]);      
    }else { // 如果没有错误信息
        NSLog(@"读取成功, 文件内容是:
    %@", str);
    }
    
      • 从URL重读取
    // 用来保存错误信息
    NSError *error = nil;
    
    // 创建URL路径
    NSURL *url = [NSURL URLWithString:@"file:///Users/mj/Desktop/test.txt"];
    
    // 读取文件内容
    NSString *str = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
    
    // 如果有错误信息
    if (error) {
        NSLog(@"读取失败, 错误原因是:%@", [error localizedDescription]);
    } else { // 如果没有错误信息
        NSLog(@"读取成功, 文件内容是:
    %@", str);
    }
    

    URL

    • 什么是URL
      • URL的全称是Uniform Resource Locator (统一资源定位符)
      • URL是互联网上标准资源的地址
      • 互联网上的每个资源都有一个唯一的URL,它包含的信息指出资源的位置
      • 根据一个URL就能找到唯一的一个资源
    • URL的格式
    • 常见的URL协议头(URL类型)
      • httphttp:超文本传输协议资源,网络资源
      • ftp:文件传输协议
      • file:本地电脑的文件

    URL的创建

    • 传入完整的字符串创建
      • NSURL *url = [NSURL URLWithString:@"file:///Users/mj/Desktop/str.txt"];
    • 通过文件路径创建(默认就是file协议的)
      • NSURL *url = [NSURL fileURLWithPath:@"/User/mj/Desktop/str.txt"];

    NSString的存储

    • 可以将NSString存储到一个文件中
    NSString  *str = @"哇哈哈哈";
    [str writeToFile:@"/Users/mj/Desktop/str.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    [str writeToURL:[NSURL URLWithString:@"/Users/mj/Desktop/str.txt"] atomically:YES encoding:NSUTF8StringEncoding error:nil];
    

    NSString的大小写处理

    • - (NSString *)uppercaseString;
      • 全部字符转为大写字母
    • - (NSString *)lowercaseString;
      • 全部字符转为小写字母
    • - (NSString *)capitalizedString;
      • 首字母变大写,其他字母都变小写

    NSString的比较

    • - (BOOL)isEqualToString:(NSString *)aString;
      • 两个字符串的内容相同就返回YES,否则返回NO
    • - (NSComparisonResult)compare:(NSString *)string;
      • 这个方法可以用来比较两个字符串内容的大小
      • 比较方法:逐个字符的进行比较ASCII值,返回NSComparisonResult作为比较结果
      • NSComparisonResult是一个枚举,有3个值:
        • 如果左侧>右侧,返回NSOrderedDescending
        • 如果左侧<右侧,返回NSOrderedAscending
        • 如果左侧==右侧,返回NSOrderedSame
    • - (NSComparisonResult) caseInsensitiveCompare:(NSString *)string;
      • 忽略大小写进行比较,返回值与compare:一致

    NSString的搜索

    • - (BOOL)hasPrefix:(NSString *)aString;
      • 是否以aString开头
    • - (BOOL)hasSuffix:(NSString *)aString;
      • 是否以aString结尾
    • - (NSRange)rangeOfString:(NSString *)aString;
      • 用来检查字符串内容中是否包含了aString
      • 如果包含,就返回aString的范围
      • 如果不包含,NSRange的location为NSNotFound,length为0

    NSRange

    • NSRange是Foundation框架中比较常用的结构体,它的定义如下:
    typedef struct _NSRange {
        NSUInteger location;
        NSUInteger length;
    } NSRange;
    // NSUInteger的定义
    typedef unsigned int NSUInteger;
    
    • NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围
    • NSRange有两个成员
      • NSUInteger location:表示该范围的起始位置
      • NSUInteger length:表示该范围内的长度
    • 比如@"I love iOS"中的@"iOS"可以用location为7,length为3的范围来表示

    NSRange的创建

    • 有三种方式创建一个NSRange变量
      • 方式1
    NSRange range;
    range.location = 7;
    range.length = 3;
      • 方式2
    NSRange range = {7, 3};
    或者 
    NSRange range = {.location = 7,.length = 3};
      • 方式3
    NSRange range = NSMakeRange(7, 3);

    NSString的截取和替换

    • - (NSString *) substringFromIdex:(NSUInteger)from;
      • 从指定位置from开始(包括指定位置的字符)到尾部
    • - (NSString *) substringToIndex:(NSUInteger)to;
      • 从字符串的开头一直截取到指定的位置to,但不包括该位置的字符
    • - (NSString *) substringWithRange:(NSRange)range;
      • 按照所给出的NSRange从字符串中截取子串
    • - (NSString *) stringByReplacingOccurrencesOfString: (NSString *) target withString:(NSString *) replacement;
      • 用replacement替换了target

    NSString与路径

    • - (BOOL)isAbsolutePath;
      • 是否绝对路径
    • - (NSString *) lastPathComponent;
      • 获得最后一个目录
    • - (NSString *) stringByDeletingLastPathComponent;
      • 删除最后一个目录
    • - (NSString *) stringByAppendingPathComponent:(NSString *)str;
      • 在路径的后面拼接一个目录
      • (也可以使用stringByAppendingString:或者stringByAppendingFormat:拼接字符串内容)

    NSString与文件拓展名

    • - (NSString *)pathExtension;
      • 获得拓展名
    • - (NSString *)stringByDeletingPathExtension;
      • 删除尾部的拓展名
    • - (NSString *)stringByAppendingPathExtension:(NSString *)str;
      • 在尾部添加一个拓展名

    NSString的其他用法

    • - (NSUinteger) length;
      • 返回字符串的长度(有多少个文字)
    • - (unichar) characterAtIndex:(NSUInteger)index;
      • 返回index位置对应的字符
    • 转为基本数据类型
      • - (double)doubleValue;
      • - (float) floatValue;
      • - (int) intValue;
    • - (char *)UTF8String;
      • 转为C语言中的字符串

    NSString去空格

    • 去除所有的空格
      • [str stringByReplacingOccurrencesOfString:@" " withString:@""];
    • 去除首位的空格
      • [str stringByTrimmingCharactersInSet:[NSCharacterSetwhitepaceCharacterSet]];
  • 相关阅读:
    初始化Winsock库
    memset与初始化
    老板不在,嚣张的正则
    教研室的下午,取快递的一天
    教研室的夜晚
    真不知道起什么名字了
    任性就是没长大咯
    难得起得早,难得周六上班
    工欲学其语,必先装软件
    151008-JS初级完成,PHP入门(变量常量等)-没假放了
  • 原文地址:https://www.cnblogs.com/saurik/p/4832420.html
Copyright © 2011-2022 走看看