NSString与C字符串之间的相互转换

代码:
[cpp]
const char *cString = "这是一个C字符串, c string";
NSString *nsstring = @"这是个NSString字符串, nsstring";
NSLog(@"cString字符串-->%s ",cString);
NSLog(@"NSString字符串-->%@",nsstring);

const char *cString2 = [nsstring UTF8String];
NSString *nsstring2 = [NSString stringWithUTF8String:cString];
NSLog(@"cString2字符串-->%s ",cString2);
NSLog(@"NSString2字符串-->%@",nsstring2);

结果:

char类型的C字符串中文在Mac系统下打印出来显示乱码,这种乱码并不是错误,是ASCII解码所导致的。

时间: 2012-11-17

Objective-C中字符串NSString的常用操作方法总结

1.创建字符串 (1)常量字符串 复制代码 代码如下: NSString *string = @"i am an iOSDevTip!"; (2)常用创建方法 复制代码 代码如下: NSString *string = [[NSString alloc] init]; string = @"i am an iOSDevTip too!"; (3)用initWithString创建字符串 复制代码 代码如下: NSString *string = [[NSString

Objective-C中使用NSString类操作字符串的方法小结

一.字符串切割 1.带节点的字符串,如@"<p>讨厌的节点<br/></p>"我们只想要中间的中文 处理方法: 复制代码 代码如下: NSString *string1 = @"<p>讨厌的节点<br/></p>";   /*此处将不想要的字符全部放进characterSet1中,不需另外加逗号或空格之类的,除非字符串中有你想要去除的空格,此处< p /等都是单独存在,不作为整个字符*/

iOS开发中一些手写控件及其相关属性的使用

手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: 复制代码 代码如下: [btn addTarget:s

iOS开发之详谈属性设置readwrite、readonly、retain、copy、assign、nonatomic

具体详细介绍请看下文文字说明吧,本文介绍的非常详细. 1 . 可读性: readonly.readwrite @property(readwrite,....) valueType value; 这个属性是变量的默认属性,就是如果你 (readwrite and readonly 都没有使用,那么你的变量就是 readwrite属性 ) ,通过加入 readwrite 属性你的变量就会有 get 和 set 方法. property(readonly,...) valueType value;

iOS开发中CAlayer层的属性以及自定义层的方法

CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) @property CGPoint anchorPoint; 称为"定位点"."锚点" 决定着CALayer身上的哪个点会在position属性所指的位置 以自己的左上角为原点(0

详解iOS中UIButton的三大UIEdgeInsets属性用法

UIEdgeInsets是什么 UIEdgeInsets是什么?我们点进去看一下: typedef struct UIEdgeInsets { CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset' } UIEdgeInsets; UIEdgeInsets是个结构体类型.里面有四个参数,分别是:

IOS UI学习教程之设置UITextField各种属性

UITextField是IOS中非常常用的一个控件,用来接收用户输入信息,完成应用和用户的交互.它的主要属性设置如下: //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enu

浅谈Rails 4 中Strong Parameters机制

要弄明白Rails 4 中Strong Parameters机制,首先我们要看看Rails3中的Parameters 在 Rails3 中创建或更新 Active Record 对象时,会有 Mass Assignment 安全问题.所以 Model 中需要列一个白名单,声明哪些属性可以被 parameter 的数据更新. Rails 3 # kings_controller.rb def create #{ name: 'David', sex:male, age: 31} @king = K

iOS应用开发中使UITextField实现placeholder属性的方法

我们都知道iOS开发中的UITextField有个placeholder属性,placeholder可以很方便引导用户输入.但是UITextView却没有placeholder属性. 一.猥琐的方法 如何让UITextView也有placeholder功能呢?今天给各位分享一个比较猥琐的做法.思路大概是这样的: 把UITextView的text当placeholder使用. 在开始编辑的代理方法里清除placeholder. 在结束编辑的代理方法里在设置placeholder. 实现方法: 1.

NSString属性何时用strong何时用copy?

前言 我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy.那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子. 代码验证 @property (nonatomic, strong) NSString *myStrongString; @property (nonatomic, copy) NSString *myCopyString; - (void)stringTest { NSMutabl

iOS 对象属性详细介绍

iOS 对象属性 oc对象的一些属性: retain,strong, copy,weak,assign,readonly, readwrite, unsafe_unretained 下面来分别讲讲各自的作用和区别: retain,计数器加1, (增加一个指向内存的指针) 对应release(计数器-1) setter 方法对参数进行 release 旧值再 retain 新值,所有实现都是这个顺序 - (void)setBackView:(UIView *)backView { if (_bac

runtime获取属性和成员变量方法

成员变量 1.成员变量的定义 Ivar: 实例变量类型,是一个指向objc_ivar结构体的指针 typedef struct objc_ivar *Ivar; 2.相关函数 // 获取所有成员变量 class_copyIvarList // 获取成员变量名 ivar_getName // 获取成员变量类型编码 ivar_getTypeEncoding // 获取指定名称的成员变量 class_getInstanceVariable // 获取某个对象成员变量的值 object_getIvar

iOS中的应用启动原理以及嵌套模型开发示例详解

程序启动原理和UIApplication   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对象就是UIAp

iOS开发--仿新闻首页效果WMPageController的使用详解

这一篇记录的是iOS开发中第三方库WMPageController控件的使用方法,主要是用来分页显示内容的,可以通过手势滑动来切换页面,也可以通过点击标题部分来切换页面,如下图所示: 使用方法: 新建工程DemoTest1,然后通过cocoapods引入WMPageController到项目中,Podfile文件的内容如下: platform :ios,'7.0' target 'DemoTest1' do pod 'WMPageController', '~> 1.6.4' end 方法一:

详解iOS应用UI开发中的九宫格坐标计算与字典转换模型

九宫格坐标计算 一.要求 完成下面的布局 二.分析 寻找左边的规律,每一个uiview的x坐标和y坐标. 三.实现思路 (1)明确每一块用得是什么view (2)明确每个view之间的父子关系,每个视图都只有一个父视图,拥有很多的子视图. (3)可以先尝试逐个的添加格子,最后考虑使用for循环,完成所有uiview的创建 (4)加载app数据,根据数据长度创建对应个数的格子 (5)添加格子内部的子控件 (6)给内部的子控件装配数据 四.代码示例 复制代码 代码如下: // //  YYViewC

iOS开发系列--详细介绍数据存取

概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录.当然,文件存储并不作为本文的重点内容.本文重点还是说数据库存储,做过数据库开发的朋友应该知道,可以通过SQL直接访问数据库,也可以

IOS 应用程序管理的实现

IOS 应用程序管理的实现 1. 项目名称:应用管理 2. 项目截图展示 3. 项目功能 展示应用图标,名称和下载按钮 点击下载按钮,出现"正在下载"图标 4. 项目代码 模型代码:AppInfo.h #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface AppInfo : NSObject @property (nonatomic, copy) NSString *name;

Objective-C中编程中一些推荐的书写规范小结

一.类 1. 类名 类名应该以三个大写字母作为前缀(双字母前缀为Apple的类预留) 不仅仅是类,公开的常量.Protocol等的前缀都为相同的三个大写字母. 当你创建一个子类的时候,你应该把说明性的部分放在前缀和父类名的中间. 例如: 如果你有一个 ZOCNetworkClient 类,子类的名字会是ZOCTwitterNetworkClient (注意 "Twitter" 在 "ZOC" 和 "NetworkClient" 之间); 按照这个

iOS开发中常见的项目文件与MVC结构优化思路解析

常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要用来放依赖的框架 3.test文件夹是用来做单元测试的 4.常用的文件夹(项目名称文件夹) (1)XXXinfo.plist文件(在该项目中为  01-常见文件-Info.plist) 1)简单说明 是配置文件,该文件对工程做一些运行期的配置,非常重要,不能删除. 在旧版本xcode创建的工程中,这个配置文件的名字就