文档章节

Object-C学习代码【关于Foundation kit的一些方法】

TomatosX
 TomatosX
发布于 2014/08/21 17:02
字数 546
阅读 34
收藏 0
//
//  main.m
//  SimplePrograming
//
//  Created by on 14-8-21.
//  Copyright (c) 2014年 com.SimplePrograming. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSString *str1 = @"abc5";
    NSString *str2 = [NSString stringWithFormat:@"abc%d", 5];
//    isEqualToString:比较字符串内容是否相等
    if ([str1 isEqualToString: str2]) {
        NSLog(@"str1 as same as str2!");
    }
    
//    ====================================================================
    
//    compare:方法返回BOOL即1或者0,应该用%d来表示
    NSLog(@"%d", [str1 compare: str2] == NSOrderedSame);
    NSLog(@"%d", [str1 compare: str2] == NSOrderedAscending);
    NSLog(@"%d", [str1 compare: str2] == NSOrderedDescending);
    
//    ====================================================================
    
//    不可直接将[str1 compare:str2]用作if的条件判断
    if ([str1 compare:str2] == NSOrderedSame) {
        NSLog(@"str1 as same as str2!");
    }
    
//    ====================================================================
    
//    计算字符串长度的两种方法
    NSLog(@"%lu", str1.length);
    NSLog(@"%lu", [str2 length]);
    
//    ====================================================================
    
    NSString *name1 = @"jack";
    NSString *name2 = @"Jack";
//    compare: 的比较是区分大小写的
    if ([name1 compare:name2] == NSOrderedSame) {
        NSLog(@"两个字符串相等");
    } else {
        NSLog(@"两个字符串不等");
    }
    
//    ====================================================================
    
//    不区分大小写的比较方式
    if ([name1 compare:name2 options:NSCaseInsensitiveSearch] == NSOrderedSame) {
        NSLog(@"两个字符串相等");
    } else {
        NSLog(@"两个字符串不等");
    }
    
//    ====================================================================
    
//    不区分大小写和比较字符串的字符个数
    if ([name1 compare:name2 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame) {
        NSLog(@"两个字符串完全(内容和字数)相等");
    } else {
        NSLog(@"两个字符串不等");
    }
    
//    ====================================================================
    
    NSString * fileName = @"draft-chapter.pages";
//    hasPrefix 以xxx字符串开头
    if ([fileName hasPrefix: @"draft"]) {
        NSLog(@"这是一个文档!");
    }
//    hasSuffix 以xxx字符串结尾
    if ([fileName hasSuffix: @".mov"]) {
        NSLog(@"这是一个movie");
    }
    
//    ====================================================================
    
//    检查字符串中是否有其他的字符串
    NSRange range = [fileName rangeOfString:@"chapter"];
    NSLog(@"location = %lu, length = %lu", range.location, range.length);
    
//    ====================================================================
    
//    NSMutableString类似于java中的StringBuffer
    NSMutableString *string = [NSMutableString stringWithCapacity:42];
    [string appendString:@"Hello there "];
    [string appendFormat:@"human %d!", 39];
    NSLog(@"%@", string);
    
//    ====================================================================
    
//    创建字符串
    NSMutableString *friends = [NSMutableString stringWithCapacity:50];
    [friends appendString:@"James BethLynn Jack Evan"];
    NSLog(@"%@", friends);
//    检查字符串中是否含有Jack
    NSRange friendsRange = [friends rangeOfString:@"Jack"];
    friendsRange.length++; // 加一是为了删除Jack后面的空格
//    删除Jack
    [friends deleteCharactersInRange:friendsRange];
    NSLog(@"%@", friends);
    
//    rangeOfString找不到的话会返回not.location为NSNotFound
    NSRange not = [friends rangeOfString:@"Tom"];
    BOOL result = not.location == NSNotFound;
//    OC中的BOOL有两个值YES:1,NO:0。
    NSLog(@"%@", result ? @"YES" : @"NO");
    
//    BOOL非零为真
//    BOOL可以赋值为YES或NO
    BOOL j = 4;
    if (j) {
        NSLog(@"BOOL为4");
    }
    
//    Boolean型的数据,非零即为真,可以赋值为true或false
    Boolean flag = true;
    Boolean a = 0;
    Boolean b = 1;
    Boolean c = 4;
    if (flag) {
        NSLog(@"Boolean 型的数据类型");
    }
    
    if (!a) {
        NSLog(@"Boolean 为0即为假");
    }
    
    if (b && c) {
        NSLog(@"Boolean 非0即为真");
    }
    
    return (0);
}

© 著作权归作者所有

TomatosX
粉丝 23
博文 207
码字总数 119547
作品 0
成都
iOS工程师
私信 提问
Swift 开发的基本设置

重要事项 这是一篇正在开发中的API或技术的初始文档。Apple提供此信息来帮助您对采用本技术做规划,以及根据这里的描述的编程接口来使用Apple品牌的产品。这些信息受变更影响,并且本文档中的...

oschina
2014/06/03
1K
0
Object-C学习笔记(一)

最近休息在家,闲来无事想搞一个iphone的游戏玩玩,于是买了本 图灵 的 Object-C基础教程 看了看,这本书还算比较基础,里面讲解知识点也比较通俗易懂,尤其是做过一些开发的人,基本上没有什...

logbird
2012/11/29
10.8K
2
我是如何学习Xcode下Objective C开发的?

Objective C开发的主要IDE是Mac平台上的Xcode,当然你在Linux下也可以学习和使用,甚至在Windows下也是可以的,有兴趣的朋友可以自己搜索这方面的信息。但是我觉得最好是在Mac平台上使用Xco...

鉴客
2011/12/09
1K
0
iOS7中Objective-C和Foundation的新特性

转自kingzwt2009的专栏 注意事项(Ray):文章来自iOS 7 by Tutorials iOS 7Feast的一部分(略) Objective-C 是最重要的iOS和OSX apps的开发工具。你可以使用其他语言的第三方框架开发apps,...

mingxun
2014/05/08
38
0
iOS7中Objective-C和Foundation的新特性(What’s New in Obj

说明 注意事项(Ray):文章来自iOS 7 by Tutorials iOS 7Feast的一部分(略) Objective-C 是最重要的iOS和OSX apps的开发工具。你可以使用其他语言的第三方框架开发apps,例如HTML&Javasc...

我心java
2014/04/20
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
今天
5
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
今天
8
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
今天
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
今天
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部