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]];
  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    提高SQL执行效率的16种方法
    Spring Ioc DI 原理
    java内存泄漏
    转:js闭包
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Best Time to Buy and Sell Stock with Cooldown
    LeetCode Length of Longest Fibonacci Subsequence
    LeetCode Divisor Game
    LeetCode Sum of Even Numbers After Queries
  • 原文地址:https://www.cnblogs.com/saurik/p/4832420.html
Copyright © 2011-2022 走看看