最近在做程序的时候,突然发现对于NSString的理解还是存在问题的.因此补充一片blog,希望对刚刚进入OC开发并搞不清楚内存泄露问题的人一点指引. 赋值: NSString * str = @"123";   // 这段代码的含义其实就是附一个常量给str,该部分由系统自动管理,不需要release释放,是会autorelease的. NSString * str = [[NString alloc] initWithString :@"111"]; // 这种…
截取 NSString *str1 = @"this is zero"; 1.从第三个字符开始,截取长度为2的字符串.........注:空格算作一个字符 NSString *str2 = [str1 substringWithRange:NSMakeRange(5,2)];//str2 = "is" 2.截取从0位到第n为(第n位不算在内) NSString *str3 = [str1 substringToIndex:4];//str3 = "this…
创建一个字符串对象: NSstring * str1 = @"hello world"; NSString * str = [[NSString alloc]initWithString:@"hello world!"]; NSString * str_1 = [[NSString alloc]initWithUTF8String:"hello world"];//把C的字符串转化为OC的字符串 int a = 123; NSString * s…
根据固定宽度计算字符串高度: NSString *info = @"但是公司的高度是广东省公司的广东省高速度来开个大帅哥多撒谎个爱好就跟他说噶三公司噶是的刚好是我哥如果黑暗如果坏都干撒降低公司及嘎斯进欧冠赛欧结果就赛欧国际韶关:可垃圾费:阿尔加两块:三个身高萨嘎干撒的公司的高度上收到公司的公司都给ID搜狗破is打个屁偶是东莞IP手动皮革是滴哦苹果是滴哦苹果度搜皮为欧公司的漂漂是第三个是干撒噶是的噶虽然刚撒旦个撒公司的公司的高度";; CGFloat textW = CONVER_VAL…
//这个frame是初设的,没关系,后面还会重新设置其size.     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];     label.numberOfLines = 0;     label.backgroundColor = [UIColor clearColor];          NSDictionary *attributes = @{NSFontAttributeName:[UIFon…
http://draveness.me/autoreleasepool.html 关注仓库,及时获得更新:iOS-Source-Code-Analyze Follow: Draveness · Github 由于 Objective-C 中的内存管理是一个比较大的话题,所以会分为两篇文章来对内存管理中的一些机制进行剖析,一部分分析自动释放池以及 autorelease 方法,另一部分分析 retain.release 方法的实现以及自动引用计数. 写在前面 这篇文章会在源代码层面介绍 Objec…
//将NSData转化为NSString        NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];//将NSString 转化为NSData (NSString.h)- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; //载一个字符串中删除一个字符或字符串[_display deleteCharacte…
有时候一个所有者创建一个对象后,会立刻将该对象的指针传递给其它所有者.这时,这个创建者不希望再拥有这个对象,但如果立刻给它发送一个release消息会导致这个对象被立刻释放掉——这样其它所有者还没有来得及保留该对象.解决这个两难问题的方法是,给对象发送一个autorelease消息:这样创建者不再拥有该对象的所有权:该对象成为自动释放的对象,但是不会立刻被释放掉:其它所有者可以有时间保留或复制该对象,并成为其唯一所有者. 我们来看一个自动释放的例子(代码清单3-1).一个所有者先用alloc方法…
--前言:iOS开发中关于对象的释放问题,虽然知道规则,但总不清楚自动释放的对象什么时候彻底消失?它存在的多久?什么情况会消失?都不清楚,每次用自动释放对象,总有点心虚的感觉,以下是一些例子.研究. --直接上代码,代码写在一个控制器的viewDidLoad方法里(代码内容是用一个path就保存一个data,但path是自动释放对象): //例子1 NSArray*patharray=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,…
普通的创建字符串: NSString *string =[[NSString alloc]init]; //创建一个空的字符串,即 @“” 一 .字符串读取本地文件: 参数一: 文件地址 参数二: 文件内容的下标,如"4" 或者 转换格式,如"NSUTF8StringEncoding" 参数三: 此处需要填写一个二级指针NSError参数,可以创建一个空的NSError对象填写进来,如果用不上直接填写'nil']; 补充:如果在一些时候遇到有NSError型的参数时…