20120810-课堂笔记--内存管理

本文详细探讨了Objective-C与Swift两种语言在iOS开发领域的应用与区别,包括其核心特性、优缺点以及实际项目中的使用案例。旨在帮助开发者更好地理解这两种语言,选择最适合项目的开发语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。创建NSString:

法1:不需要内存管理

NSString *aString = @"abcd!";

法2:不需要内存管理

 //+(id)stringWithFormat:(NSString *)fomat,...;
    
    NSString *height;
    height = [NSString stringWithFormat:@"your height is %d feet,%d inches",5,11];
    NSLog(@"%@",height);


stringWithFormat是一个类方法,通过格式字符串和参数来创建NSString

oc生成一个类时,会创建一个代表该类的类对象。

类对象包含了指向超类的指针,类名和指向类方法列表的指针。

类对象还包含一个long型数据,为新创建的类实例对象指定大小。

法3:需要内存管理

   NSString *aString = [[NSString alloc]initWithFormat:@"abcd!"];
    NSLog(@"%@",aString);
    [aString release];//释放
一个alloc 一个new 一个copy 对应一个release

1.从一个文件读取需要的内容(本地):

- (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;

2.从一个地址读取需要的内容(远程、网络):

- (id)initWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;


//如果和alloc成对使用时,需要内存管理。


3.获取对象大小

-(unsigned int)length;


返回字符串的字符个数

优势:

能准确的处理国际字符串。(汉语,韩语,日语)

4.拷贝字符串

+ (id)stringWithString:(NSString *)string;
   NSString *myString = @"this is an exasd";
    NSString *newString =[NSString stringWithString:myString];
    NSLog(@"%@",newString);
5.

NSString的比较方法

方法1:

函数

isEqualToString:(NSString *)

比较两个字符串的指针指向的内容

==

比较指针地址是否相等,而不是他们所指向的对象。


方法2:

- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;

作用:

将接受对象和传递来的字符串逐个字符地进行比较,返回一个

NSComparisonResult(enum型数据)显示比较结果。

enum _NSComparisonResult {NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending};

参数说明:

options参数是一个位掩码,可以使用位或运算符(|)来添加选项标记。


6.

根据分隔符,把字符分割

NSString *a1 =@"this,is,a,String";
    NSArray *strings = [a1 componentsSeparatedByString:@","];
    结果:
    得到一个数组 strings{"this","is","a","String"};
连接字符串

    NSArray *strings = [[NSArray alloc]initWithObjects:@"a","b","c", nil];
    NSString *a1 = [strings componentsJoinedByString:@","];
    结果:
    得到一个字符串 a1 = @"a,b,c”
7.在字符串中查找另一个字符串


//检查方法调用字符串是否以参数字符串开头

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


//检查方法调用字符串是否以参数字符串结尾

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


//检查方法调用字符串是否包含参数字符串

- (NSRange)rangeOfString:(NSString *)aString;

8.子字符串操作

//

NSString *string =@"John,Bob,Jane";


//得到从第from个字符开始地串

- (NSString *)substringFromIndex:(NSUInteger)from;

//得到开始地to个字符

- (NSString *)substringToIndex:(NSUInteger)to;

//得到从第几个开始地,几个字符

- (NSString *)substringWithRange:(NSRange)range;


9。删除对象
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{   

    NSMutableString *friends;
    friends = [NSMutableString stringWithCapacity:52];
    [friends appendString:@"James BethLynn Jack Evan"];
    
    NSRange jackRange;
    jackRange = [friends rangeOfString:@"Jack"];
    jackRange.length++;//把后面的空格也去掉
    [friends deleteCharactersInRange:jackRange];
    
    NSLog(@"%@",friends);
    
    
    
    return 0;
}










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值