`
mikixiyou
  • 浏览: 1098967 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353149
社区版块
存档分类
最新评论

Objective-c中数字型字符串转换NSNumber的三种方法

    博客分类:
  • iOS
阅读更多

MAC OS/iOS 开发时,我们会遇到这类情况。如何将输入的符合数字格式的字符串,转换成NSNumber 类型的对象。

我首先写了这个方法:

 

     id result;

     NSString * ss;

 

     ss=@"124";

 

     result=[NSNumber numberWithFloat:[ss floatValue]];

 

     NSLog(@"%f",[ss floatValue]);

     NSLog(@"%f",[result floatValue]); 
 

 

直接将NSString 类的floatValue 方法将ss 对象转成float 类型,再使用NSNumbernumberWithFloat 方法转成NSNumber 类型的对象。

但这里有一个问题, 如果ss 不是@”111.22 ,而是@xxx ”,则该方法将报错的。

因此,这里需要一个事先判断,判断ss 是不是能转成成NSNumber

根据这个修改要求,我再将代码转换成这样:

   ss=@"224.34129";

 

     NSNumberFormatter *f = [[NSNumberFormatter alloc] init];

 

     if ([f numberFromString:ss])

     {

         result=[NSNumber numberWithFloat:[ss floatValue]];

     }

     else

     {

         result=ss;

     }

 

     NSLog(@"%.2f",[result floatValue]); 

 

 

这样,功能是没有问题了。但看过之后,觉得有点累赘感。

代码简洁点可不可以呢?最终修改成这样几行,如下所示:

 

    ss=@"324.34";

 

     result=[f numberFromString:ss];

     if(!(result))

     {

         result=ss;

     }

 

     NSLog(@"%.2f",[result floatValue]); 

 

 

 

 

(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1623943 )

 

 

测试结果如下: 

2012-08-07 17:35:04.203 apple1[2484] 124.000000

2012-08-07 17:35:04.203 apple1[2484] 124.000000

2012-08-07 17:35:04.203 apple1[2484] 224.34

2012-08-07 17:35:04.203 apple1[2484] 324.34

 

对于这个方法,我做了几次修改。当然,这是自己本着爱好再写,如果到真实项目中,可能在第一步就停滞了。

在这个方法的编写中,我理解了NSNumberNSStringfloat 三个类型的关系,及其之间的相互转换。float 是原始类型,NSNumberNSString 是对象。

分享到:
评论

相关推荐

    objective-c的计算器

    Objective-C是一种强大的面向对象编程语言,特别是在苹果的iOS和macOS平台上广泛使用。"objective-c的计算器"项目是一个基础的编程练习,旨在帮助开发者理解Objective-C的基本语法和面向对象编程概念。在这个简易...

    Learn Objective-C 中文版 v2

    Objective-C是一种强大的面向对象编程语言,它在Apple的软件开发领域占据着核心地位,主要用于创建Mac OS X和iOS的应用程序。这个"Learn Objective-C 中文版 v2"的学习资源可能是针对那些希望深入理解Objective-...

    Objective-C&UIKit自学笔记

    Objective-C是一种面向对象的编程语言,它在C语言的基础上增加了SmallTalk-80的特性,主要应用于Apple的iOS和macOS平台。Objective-C中的UIKit框架是构建用户界面的基础,提供了丰富的控件和功能来创建iOS应用程序。...

    Objective-C.2.0 程序设计

    《Objective-C.2.0 程序设计》这本书深入介绍了Objective-C语言,这是苹果公司开发的一种面向对象的编程语言,广泛用于Mac OS X和iOS应用程序的开发。书中除了基础的Objective-C语言知识外,还涵盖了Foundation框架...

    从 C++ 到 Objective-C 快速精通

    通过深入理解C++到Objective-C的转换过程,开发者可以充分利用这两种语言的优势,拓宽自己的技能领域。 C++是面向对象的编程语言,以其强大的模板系统、STL(标准模板库)和底层控制能力著称。Objective-C则是在C++...

    Objective-C Succinctly.pdf

    - **语言特性**:Objective-C是一种面向对象的编程语言,结合了C语言和Smalltalk的特性,是苹果公司开发iOS和macOS应用的基础语言之一。 - **目标读者**:本书适合初学者以及有一定基础的开发者学习Objective-C语言...

    Objective-C_2.0程序设计

    1. **数字、字符串和集合**:如NSNumber、NSString、NSArray、NSDictionary等类,用于处理数值、文本和数据集合。 2. **文件操作**:如NSFileManager,提供文件读写、路径操作等功能。 3. **内存管理**:Objective...

    objective-c教程

    KVC(键值编码)和KVO(键值观察)是Objective-C中实现反射的两种技术,用于通过字符串名称访问对象的属性和观察属性值的变化。 内存管理在Objective-C中非常重要。通过引用计数器、自动释放池和property属性参数...

    Objective-C Boolean 变量

    在 Objective-C 中,我们可以创建一个方法,利用布尔值来追踪这个过程: ```objc - (BOOL)isPrime:(NSUInteger)number { if (number ) { return NO; } for (NSUInteger i = 2; i * i ; i++) { if (number % i ...

    Objective-C入门指南

    Objective-C是一种强大的面向对象的编程语言,特别是在Apple的iOS和macOS开发中占据主导地位。本入门指南将帮助初学者理解Objective-C的基础概念,包括它的语法特性、继承、多态以及内存管理,同时还会涉及...

    [Objective-c程序设计].杨正洪等.扫描版

    《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...

    Objective-C语法总结

    NSString、NSArray、NSAttributedString、NSNumber等都是Foundation框架中定义的类,用于处理字符串、数组、字典等数据结构。 内存管理在Objective-C中使用引用计数机制,相关的关键字包括retain、release、...

    objective-C教程

    Objective-C是一种强大的面向对象编程语言,它是Apple的iOS和macOS操作系统的核心开发语言。本教程主要针对想要深入学习Objective-C的开发者,特别是那些对苹果平台应用程序开发感兴趣的人员。虽然教程为英文版,但...

    Objective-C词典对象的使用总结

    在这个例子中,创建了一个包含三个键值对的不可变字典,键为字符串类型,值为字符串表示的数字。需要注意的是,键在字典中是唯一的,不能重复。 访问NSDictionary中的元素,可以通过键直接获取对应的值,使用方法...

    Objective-C语法深入浅出-适合作为学习IOS开发的入门材料

    6. **选择器**(Selectors): 选择器是用于标识方法签名的字符串,可以用来动态调用方法。 #### 六、Objective-C的语法扩展 Objective-C在C的基础上进行了多方面的扩展: 1. **扩展名**: Objective-C文件通常分为两...

    Objective-C2.0程序设计 答案

    Objective-C 2.0是Apple开发的一种面向对象的编程语言,它是C语言的超集,主要用于iOS和Mac OS X应用程序的开发。Objective-C 2.0在Objective-C的基础上添加了一些新特性,使得编程更加简洁高效。以下是Objective-C ...

    从C&C++过渡到Objective-C

    Objective-C是一种强大的面向对象编程语言,它在Apple的生态系统中占据着核心地位,主要用于iOS、macOS以及其他Apple平台的应用程序开发。如果你已经掌握了C和C++的基础,过渡到Objective-C将会是一个自然且有益的...

Global site tag (gtag.js) - Google Analytics