一直以来发现对copy和retain的区别还是觉得有点糊涂,,今天晚上花时间来研究这个问题.
最后问题是解决了,但是发现了个特别有意思的问题.看下面,
NSString *str = [NSString stringWithString:@" hello world"];
[str retain];
NSLog(@"str retain count = %u",[str retainCount]);
我想通过上面的代码看看retain后的str这个变量的retainCount,但是我发现不管有没有retain str,,结果总是: 2147483647
为什么呢??
第一反应, 2147483647这个数应该是 UINT_MAX ( Maximum value an `unsigned int'),但是为什么是它呢?
google了一下,有很多说法,比如
http://stackoverflow.com/questions/1390334/nsstring-retain-count
http://stackoverflow.com/questions/403112/objective-c-nsstring-property-retain-count-oddity
给出你的答案吧.
分享到:
相关推荐
`NSString+FileSize`是一个方便的扩展,它为NSString类添加了新的功能,使我们能够轻松地获取位于沙盒中的文件或文件夹的大小。在iOS应用中,由于安全性和隐私保护的原因,开发者只能访问特定的沙盒区域,而不能随意...
简单的加法计算器。 //计算 - (IBAction) caculate { // 取出文本框的内容 NSString * num1Text = self....// 只要是自己或自己的子控件呼叫出来的键盘,都可以通过这个方法来退出键盘 [self.view endEditing:YES]; }
5. **查询数据**:使用`- (FMResultSet *)executeQuery:(NSString *)sql, ...`方法执行查询语句,返回一个`FMResultSet`对象。遍历结果集获取数据: ```objc NSString *selectSQL = @"SELECT * FROM Users"; ...
md5加密代码详细的加文件NSString+Hashing.m
NSLog([NSString stringWithFormat:@"一个NS字符串"]); ``` #### 四、`NSString`常用方法 1. **截取子串**: - `substringToIndex:`方法可以用来截取字符串的一部分。 ```objective-c NSString *nString = [a...
- `NSString`对象可以通过初始化一个特定的文本内容来创建,如`NSString* str = @"Hello World";`,这里的`@"Hello World"`是一个字符串常量,实际上是一个`NSConstantString`对象。 - 字符串常量在内存中被特殊...
3. 根据索引获得字符串的一个子串: * 截取字符从某个位置开始到末尾:`NSString *str1 = [str substringFromIndex:3];` * 截取字符从某个位置开始到首位:`NSString *str2 = [str substringToIndex:3];` * 截取...
从NSString将创建一个NSDictionary其中包含为给定限定符找到的值。 接受以下形式的查询: qualifier1:value qualifier2:value search query 。 用法 #import "NSString+QualifierSearchParser.h" ... NSString ...
在iOS开发中,NSString是Objective-C中的一个基础类,用于处理和操作文本字符串。`NSString+Extended`通常指的是开发者为了增加NSString的功能而创建的一个类别(Category),它扩展了NSString的原有功能,提供了更...
- **其他扩展**:对`NSMutableString`也进行了扩展,添加了`deleteLastCharacter`方法来删除字符串末尾的一个字符。 ### 总结 通过对`NSString`的扩展,不仅增强了字符串处理的功能,还提高了代码的可读性和重用性...
在iOS开发中,NSString是Objective-C中的一个核心类,用于处理和操作文本字符串。这个“NSString扩展类”是为了简化开发者的工作,将常见的字符串处理方法进行了封装,使得在处理复杂字符串任务时可以更高效、简洁。...
这个demo对初学者理解这两种类型之间的转换非常有帮助,对于经验丰富的开发者来说,也是一个快速实现转换功能的参考。通过阅读和分析源代码,我们可以学习到更多关于NSData和NSString转换的细节,提升我们的iOS开发...
这些方法在日常iOS应用开发中非常实用,比如用于文件管理、存储监控以及数据展示等方面。理解并熟练运用这些公共方法,可以帮助开发者更好地控制应用的存储需求,优化用户体验,同时也可以方便地处理字符串的首字母...
支持使用每个线程独立的 ASL 客户端句柄的推荐做法从后台线程进行日志记录。 与启用 ARC 和手动管理的项目兼容。 Peter Hosey 撰写了一系列关于 ASL 的优秀博客文章。 。 这些文章激励我将 SOLogger 放在一起。 ...
NSString-BlockHelper NSString + BlockHelper 例子 NSString *word1 = @"word1"; NSString *word2 = @"word2"; NSString *word3 = word1.add(@" ").add(word2); NSLog(@"%@",word3); //output : word1 ...
在上面的代码中,我们首先创建了一个NSString对象`fname`,然后使用`cStringUsingEncoding`方法将其转化为UNICODE String,并将结果存储在`fnameStr`数组中。 NSString 转化为 char 如果我们需要将NSString转化为...
2. `- (FMResultSet *)executeQuery:(NSString *)sql, ...`用于执行查询操作,返回一个FMResultSet对象,可以遍历查询结果。 FMResultSet对象提供了访问查询结果的方法: 1. `- (BOOL)next`移动到下一个结果行,...
self.datePicker.sureBlock = ^(NSString *selectDateStr) { [weakself.showDateLabel setText:selectDateStr]; [UIView animateWithDuration:5 animations:^{ [weakself.datePicker removeFromSuperview]; ...
FMDB是Objective-C编写的SQLite数据库管理库,它是SQLite的一个轻量级、易于使用的封装。本篇将深入探讨FMDB在iOS中的使用,包括其核心概念、功能、优势以及如何在实际项目中进行集成和操作。 首先,FMDB提供了简单...
FMDB是iOS平台上的一个流行的第三方数据库管理库,它为SQLite提供了Objective-C的封装,使得开发者可以更方便、更直观地进行数据库操作。本篇文章将深入探讨FMDB的核心功能、使用方法以及其在iOS开发中的实际应用。 ...