码迷,mamicode.com
首页 > Web开发 > 详细

黑马程序员---OC基础9【Foundation框架】【NSString介绍】【NSURL读写字符串】【NSString字符串比较】【NSString前后缀检查及搜索】【NSRange使用】

时间:2015-10-08 21:19:24      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

------- iOS培训、Android培训、Java培训、期待与您交流! ----------

 

【Foundation框架

1Foundation框架介绍

  1)Foundation框架概念

    框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合

    以便使研发程序变得 更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation 框架

  2)Foundation框架的作用

    Foundation框架是Mac\iOS中其他框架的基础 Foundation框架包含了很多开发中常用的数据类型:

    结构体
    枚举

    类

  3)Foundation框架使用

    要使用Foundation框架中的功能,包含它的主文件即可

    #import <Foundation/Foundation.h>

  4)修改会引起的错误

    如果出现以下错误:

        技术分享

    解决方案:删除Xcode的缓存, 缓存路径是 /Users/用户名/Library/Developer/Xcode/DerivedData

    显示隐藏文件夹:
    显示隐藏文件 : defaults write com.apple.finder AppleShowAllFiles bool true

    隐藏隐藏文件 : defaults write com.apple.finder AppleShowAllFiles bool false

 

【NSString介绍

1、NSString类概念

  一个NSString对象就代表一个字符串

  一般称NSString为字符串类

2、NSString的创建方式

    1) 最直接的方式(这是常量字符串)

      NSString *str = @"abc";

  注意这种写法,字符串存储在内存的常量区
 技术分享

    2) 格式化的方式
    NSString *str = [NSString stringWithFormat:@"%@", @"Jone"];

    注意这种写法,字符串存储在内存的堆区

    3) 从文件中读取

 1 //从文件中读取字符串显示到控制台上
 2 NSString *str = [NSString stringWithContentsOfFile:@"/Users/apple/Desktop/t.txt" encoding:NSUTF8StringEncoding error:&err];
 3 //注意如果读取到内容了, if (err == nil) {
 4 NSLog(@"读取成功的情况"); NSLog(@"%@",str);
 5 }else {
 6 NSLog(@"读取失败的情况");
 7 //可以打印err的信息
 8 NSLog(@"%@",err);
 9 //可以通过 [err localizedDescription]; 打印简单的错误信息 //NSLog(@"%@",[err localizedDescription]);
10 }

【NSURL读写字符串

1、NSURL概念

    URL的全称是Uniform Resource Locator(统一资源定位符) URL是互联网上标准资源的地址

    互联网上的每个资源都有一个唯一的URL,它包含的信息指出资源的位置 根据一个URL就能找到唯一的一个资源

2、URL的格式

    基本URL包含协议、主机域名(服务器名称\IP地址)、路径 协议 服务器的域名 路径

3、常见的URL协议头

    http\https :超文本传输协议资源, 网络资源

    在URL前加https://前缀表明是用SSL加密的。

    你的电脑与服务器之间收发的信息传输将更 加安全。

    Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。

    http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http 的连接很简单,是无状态的

    https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全

    ftp :文件传输协议

4、使用NSURL读写字符串

    传入完整的字符串创建

    NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/str.txt"]; 通过文件路径创建(默认就是file协议的)

    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"];

 

【NSString字符串比较】

1、字符串比较函数

    1)比较字符串大小

      compare方法

      compare 方法返回的结果有三种:

      NSOrderedAscending,NSOrderedSame,NSOrderedDescending,

      str > str2   NSOrderedDescending  1
      str < str2    NSOrderedAscending   -1
      str == str2  NSOrderedSame 0 

      使用compare方法时可以添加参数来决定是否区分大小写,或者声明为比较字符串个数而不是字符值等比较条件

   2)比较字符串大小,指定条件

          如果要忽略大小写的话,可以在options 里面加一个参数NSCaseInsensitiveSearch

             NSComparisonResult result2 =[str1 compare:str2 options:NSCaseInsensitiveSearch];

          常见的有3

            NSCaseInsensitiveSearch:不区分大小写字符。

            NSLiteralSearch:进行完全比较,区分大小写。(默认)

            NSNumericSearch:比较字符串的字符个数,而不是字符值。

            并可以使用"|"来同时满足多个条件。

   3)判断字符串是否相等

        -(BOOL) isEqualToString: (NSString *) aString;

        比较接收方和当作参数传递来的字符串 返回BOOL(YESNO)型数据

        表示两个字符串的内容是否相同,注意区分大小写

#import <Foundation/Foundation.h>
void test(){

    NSString *str1 = @"abc";   // a 97
    NSString *str2 = @"abc";   // A 65
    
    //取出每个字符的ASCII码值 ,比较ASCII码值大小
    //compare方法比较大小
    //compare 默认的区分大小写的
    //compare 这个函数,不能增加条件
    //        NSComparisonResult result = [str1 compare:str2];
    
    //比较的时候,不区分大小写,参考字符的个数
    NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];
    //
    switch (result) {
        case NSOrderedAscending:
            NSLog(@"str1 < str2 升序");
            break;
            
        case NSOrderedDescending:
            NSLog(@"str1 > str2 降序");
            break;
            
        case NSOrderedSame:
            NSLog(@"str1 == str2 ");
            break;
            
        default:
            break;
    }


}
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        NSString *str1 = @"abc";   // a 97
        NSString *str2 = @"abc";   // A 65
        NSString *str3 = [NSString stringWithFormat:@"Abc"];
        
        //地址的比较
        // "==" 不能够判断字符串是否相等的
        
        //判断字符串内容真正是否相等,使用是
        //isEqualToString:
        //注意:他是区分大小写的
        
        if ([str1 isEqualToString:str3]) {
            NSLog(@"相等");
        }else{
        
         NSLog(@"不相等");
        }
        
    }
    return 0;
}

 

【NSString前后缀检查及搜索

1、NSString前后缀检查

  1)判断字符串前缀 判断地址是否是网址

    file://

    ftp:// https:// http://

    检查字符串是否以另一个字符串开头 -(BOOL) hasPrefix: (NSString *) aString;

  2)判断字符串后缀 判断字符串是否以另一个字符串结尾

    -(BOOL) hasSuffix: (NSString *) aString;

 

2、字符串查找

    - (NSRange)rangeOfString:(NSString *)aString; 用来检查字符串内容中是否包含了aString
    如果包含, 就返回aString在字符串中第一次出现的范围

    反方向搜索:
    // 从后向前搜索,遇到第一次出现的位置,则结束
    [str rangeOfString: @"str" options: NSBackwardsSearch];

 

【NSRange使用

1、NSRange的使用

    NSRange是Foundation框架中比较常用的结构体

    格式:

    typedef struct _NSRange {

    NSUInteger location;

    NSUInteger length; } NSRange;

    // NSUInteger的定义
    typedef unsigned int NSInteger; typedef unsigned long NSUInteger;

    NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围

    NSRange有2个成员
    NSUInteger location : 表示该范围的起始位置

    NSUInteger length : 表示该范围内的长度

2、NSRange创建的几种方式

    有4种方式创建一个NSRange变量

    1)NSRange range;

       range.location = 7;

      range.length = 3;

    2)NSRange range = {7, 3};

       NSRange range = {.location = 7, .length = 3};

    3 )使用NSMakeRange函数

      NSRange range = NSMakeRange(7, 3);

    4)最直接的方式

      NSRange range = {5,8}; 查看Range的值,可以使用

      NSLog(@"%@",NSStringFromRange(range));

 

 
 

黑马程序员---OC基础9【Foundation框架】【NSString介绍】【NSURL读写字符串】【NSString字符串比较】【NSString前后缀检查及搜索】【NSRange使用】

标签:

原文地址:http://www.cnblogs.com/snowimba/p/4862174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!