黑马程序员技术交流社区
标题:
学习内容整合 NSString/NSMuTableString NSArray/NSMuTableArray
[打印本页]
作者:
doudou33420
时间:
2014-11-2 14:54
标题:
学习内容整合 NSString/NSMuTableString NSArray/NSMuTableArray
本帖最后由 doudou33420 于 2014-11-2 16:15 编辑
//
// main.m
// dkksdsad
//
// Created by PG on 14/11/2.
// Copyright (c) 2014年 PG. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//NSString
//获取url信息返回字符串 url可为本地文件file://
NSURL *u = [NSURL URLWithString:@"http://baidu.com"];
NSString *p = [NSString stringWithContentsOfURL:u encoding:NSUTF8StringEncoding error:nil];
//拼接字符串 返回新的对象
NSString *p1 = @"abc";
NSString *p2 = [p1 stringByAppendingString:@"123"];
//截取字符串返回新对象
NSString *p3 = [p2 substringFromIndex:3];
[p2 substringToIndex:1];
[p2 substringWithRange:NSMakeRange(0, 2)];
//字符串对比 返回bool
bool a = [p2 isEqualToString:@"abc123"];
//NSMuTableString 可变字符串
NSMutableString *mts = [[NSMutableString alloc]initWithString:@"abc"];
//拼接原字符串 无返回值
[mts appendString:@"123"];
//可调用任何 NSString方法 以下方法返回NSString
// mts = [mts stringByAppendingString:@"123"];
//利用NSRange 删除字符串 当前对象操作 无返回值
NSRange r1 = [mts rangeOfString:@"123"];
[mts deleteCharactersInRange:r1];
//利用NSRange替换字符串 当前对象操作 无返回值
[mts replaceCharactersInRange:NSMakeRange(2, 1) withString:@"c123"];
//以指定字符串信息为分割符分割对象 返回NS数组 如"abc" "\r\t\n"
NSArray *arr = [mts componentsSeparatedByString:@"a"];
//NS数组 保存OC对象 无法直接保存基础类型数据 如 int char struct
NSArray * arr1 = [NSArray array]; //空数组且始终为空无法添加元素
//定义元素数量为1的NS数组
NSArray * arr2 = [NSArray arrayWithObject:@"asd"];
//定义多个元素的NS数组 末尾必须使用nil
NSArray * arr3 = [NSArray arrayWithObjects:@"asd",@"qwe",@"zxc",nil];
int count = arr3.count; //获取数组元素个数
//NS可变数组 继承NSArray
NSMutableArray * mta = [NSMutableArray array];//空数组 但可添加元素
//NSMytableArray 方法都是当前对象操作 无返回值
[mta addObject:@"添加元素"];
// [mta addObject:nil]; NSMutableData 不可添加nil
//给当前数组添加一个NSArray数组 只可添加NSArray数组 int a[10] 无法添加
[mta addObjectsFromArray:arr3];
//根据元素信息删除元素
[mta removeObject:@"asd"];
[mta removeObjectAtIndex:1];//根据索引删除元素
//根据索引替换元素内容
[mta replaceObjectAtIndex:1 withObject:@"abc"];
//根据索引获取元素信息
NSString *p4= [mta objectAtIndex:1];
//简化objectAtIndex获取方式
NSString *p5 = mta[1];
}
return 0;
}
复制代码
注意: @"" 为NSString对象 @[]为NSArray对象 当使用子类对象接受父类对象 并且仍调用子类自身方法时 请斟酌;例: NSMuTableString * mts = @"abc123"; 请观察当前真实对象为 " ? " , 此时继续调用 子类方法 [mts appendString:@"456"] 则 "?"
作者:
诺微_
时间:
2014-11-2 18:25
应该是报错吧 因为你也说过啦:@"" 为NSString对像 NSMuTableString * mts = @"abc123"; 其真是类型还是NSString 是不可变的 然后调用appendString方法是错误的
作者:
doudou33420
时间:
2014-11-2 18:28
正解 正解.............
作者:
王绍明
时间:
2014-11-2 18:58
bucuo...............
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2