`
iaiai
  • 浏览: 2196490 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios常用的字符串NSString理解

 
阅读更多
最近在做程序的时候,突然发现对于NSString的理解还是存在问题的。因此补充一片blog,希望对刚刚进入OC开发并搞不清楚内存泄露问题的人一点指引。


赋值:

NSString * str = @"123";   // 这段代码的含义其实就是附一个常量给str,该部分由系统自动管理,不需要release释放,是会autorelease的。

NSString * str = [[NString alloc] initWithString :@"111"]; // 这种写法本身存在问题,因为这个代码的含义是说给str附一个常量,因此会被编译器优化,因此也是不需要release的,尽管有alloc出现。

NSString * str = [[NSString alloc] initWithFormat:@"123"] ;// 必须要进行release才可以,因为这样就会导致内存泄露。

NSString * str = [[NSString stringWithFormat:@"111"];// 则个不需要release,也不会产生内存泄露,因为该部分调用的是系统的类方法,也就是会autorelease。这种方法其实也被称之为临时的变量使用方法。

补充一点内容:

1、initWithFormat是实例方法

只能通过 NSString* str = [[NSString alloc] initWithFormat:@"%@",@"Hello World"] 调用,但是必须手动release来释放内存资源

2、stringWithFormat是类方法

可以直接用 NSString* str = [NSString stringWithFormat:@"%@",@"Hello World"] 调用,内存管理上是autorelease的,不用手动显式release


经常在uilable的填写中,使用到字符串,因此也就非常容易造成内存泄露。
分享到:
评论

相关推荐

    iOS时间戳字符串NSDate转化demo.zip

    在iOS开发中,时间戳与NSDate对象之间的...总的来说,"iOS时间戳字符串NSDate转化demo"这个项目涵盖了iOS开发中日期处理的基础,通过学习和实践,开发者可以更好地理解和应用这些转换方法,提高应用程序的用户体验。

    iOS 字符串转中文

    在iOS开发中,我们通常使用Foundation框架中的NSString和NSMutableString类来处理字符串。这两个类提供了丰富的字符串操作方法,包括查找、替换、格式化等。然而,当涉及到中文字符时,我们需要关注Unicode编码,...

    iOS中字符串换行的实现方法

    在iOS中,字符串通常是`NSString`或`NSMutableString`对象,而在Swift中则是`String`类型。对于换行操作,最直观的方法是在字符串中插入换行符`\n`。然而,这个字符在不同的上下文可能会有不同的效果。 在前面的...

    ios 字符串测试

    在iOS开发中,字符串操作是日常编程中必不可少的一部分。这里我们主要关注三个核心知识点:字符串处理、正则表达式和数据结构。这些概念在iOS应用的各个层面都有广泛的应用,如用户界面交互、数据验证、数据存储等。...

    判断字符串是否是空

    首先,我们要理解"空"字符串的概念。在`NSString`中,"空"可以指以下几种情况: 1. **空字符串(Empty String)**: 字符串长度为0,即没有包含任何字符。 2. **空格字符串(Whitespace String)**: 虽然字符串长度...

    iOS NSString详细操作

    NSString *aString = [[NSString alloc] initWithFormat:@"这也是个NS字符串!"]; ``` 2. **从文件或URL中读取内容**: - **从文件中读取**: ```objective-c NSString *path = @"/path/to/file.txt"; ...

    ios demo,JSONString to NSDictionary,字符串JSON数据转换到字典数据

    本示例“ios demo, JSONString to NSDictionary”聚焦于将JSON字符串转化为Objective-C中的NSDictionary对象,这是iOS开发中的常见操作。接下来,我们将深入探讨这个过程以及相关知识点。 首先,理解JSON的基本结构...

    ios-富文本处理字符串.zip

    本资源“ios-富文本处理字符串.zip”显然是关于如何在iOS应用中实现这种功能的示例代码或教程。 首先,我们来看“指定字符串中特定字符串字体颜色和大小”这一知识点。在iOS中,我们可以使用NSAttributedString和...

    ios demo,NSData和NSString之间的相互转换的源代码

    NSString对象可以由字符数组、C语言字符串(C字符串)或者其他字符串对象创建。 在iOS开发中,NSData和NSString之间的转换主要涉及以下几种情况: 1. **NSData转NSString**:通常使用`- initWithData:encoding:`或...

    IOS开发常用代码.docx

    本文档主要涉及iOS开发中的常用代码,尤其是与Objective-C字符串操作相关的知识点。 首先,我们来看 `%` 符号在输出格式化字符串中的作用。在C语言及其派生语言(如Objective-C)中,`%`是格式化输出的标志,用于...

    详细谈谈iOS字符串翻转

    在iOS开发中,字符串翻转是一项常见的操作,尤其是在处理算法问题时。字符串翻转的基本思路通常是逆序遍历,双指...在编程实践中,理解字符串的内部编码机制和适当使用系统提供的工具,对于编写健壮的代码至关重要。

    oc字符串操作.pdf

    在Objective-C中,`NSString`和`NSMutableString`提供了丰富的API来处理字符串,涵盖了从基本的创建、比较到复杂的转换和操作,是iOS和macOS开发中的重要工具。理解并熟练掌握这些操作对于编写高效且功能完备的应用...

    iOS特殊字符处理

    NSString是处理文本的基础,它提供了丰富的字符串操作方法。在处理特殊字符时,可以使用`stringByAddingPercentEncodingWithAllowedCharacters:`方法进行URL编码,防止特殊字符在URL中引起解析问题。例如,空格会被...

    IOS中如何将十六进制颜色的字符串转化为UIColor

    在iOS开发中,由于系统内置的UIColor类...以上就是在iOS开发中将十六进制颜色字符串转化为UIColor对象的方法。通过扩展或分类,我们可以轻松地在项目中使用这种功能,使得从Web设计到移动应用的颜色转换变得更加便捷。

    ios_NSString转成16进制Demo

    在Objective-C中,转换NSString到16进制字符串通常涉及以下几个步骤: 1. **获取NSString的UTF8编码**:NSString可以通过`dataUsingEncoding:`方法转换为NSData,通常选择UTF8编码。 ```objc NSData *data = [str ...

    oc字符串练习题

    OC语言中的字符串处理是iOS开发中非常重要的一部分,本文将对OC语言中的字符串处理进行详细的介绍和实践操作。 字符串的基本操作 在OC语言中,字符串是使用NSString类来表示的。NSString类提供了许多方法来操作...

    NSString扩展类

    在iOS开发中,NSString是Objective-C中的一个核心类,用于处理和操作文本字符串。这个“NSString扩展类”是为了简化开发者的工作,将常见的字符串处理方法进行了封装,使得在处理复杂字符串任务时可以更高效、简洁。...

    iPhone之NSString常用方法示例程序

    在开发iPhone应用时,字符串操作是非常常见的,NSString提供了丰富的API来处理这些需求。 首先,NSString是不可变的,这意味着一旦创建了NSString对象,就不能更改它的内容。如果你需要修改字符串,通常需要创建一...

    OC-里的字符串

    在iOS和Mac开发中,Objective-C(简称OC)是一门重要的编程语言,它引入了许多类库,其中之一就是Foundation框架,其中包含了许多基础的数据类型和工具,NSString就是处理文本字符串的关键类。NSString对象是不可变...

    iOS时间字符串格式化输出技巧详解

    在iOS开发中,处理时间字符串的格式化输出是一项常见的任务。...通过创建Category或扩展,我们可以封装常用的方法,提高代码的可读性和复用性,同时避免了不必要的字符串处理,使得时间格式化输出更加高效和准确。

Global site tag (gtag.js) - Google Analytics