Obj-C 基础概述

本文介绍了Objective-C中如何使用C++文件,声明类成员属性,转换char *与NSString *,以及一个类的实现示例,包括访问器和设置器的使用。重点强调了Objective-C类成员的默认私有性以及内存管理的重要性。
摘要由CSDN通过智能技术生成

1. ObjC中可以使用标准C++的文件,但是在ObjC中要使用的话请先把你的文件格式改成 .mm 的,不然编译肯定会报一大堆的错误。当然,你如果想在你的类中使用标准C++的类,要么引用头文件,要么就写类前导声明。不过这里要注意的是写法的问题。
例如,@Class MyClass; 大家都知道这个可以用来声明一个ObjC的类(interface),而想声明C++类,那么去掉@符号吧,和你在C++写法一样,Class MyClass; 简单吧。

2. 在ObjC中,类成员属性默认是私有的,想声明为公有,那么就这么写:
@interface MyClass
{
    @public NSInteger iMember1;
    @public NSInteger iMember2;
}
@end

不过要说明的是,就算你写成公有的了,我也没想到用什么办法不通过设置器和访问器直接修改或者读取这个成员,指针例外。

3. 引用头文件的方式,想必大家也知道#import的好处,不过提一点的是,如果你建立文件的时候,这两个文件只是关联的方式存在于你的工程,而存储位置并不是这个位置,那么X-Code说不定就会给你报出一个重复定义的错误的,那个时候先别想其他的,检查工程中的文件有没有少。当然,框架的添加除非必要,一般都是采取关联的方式添加到你的工程中的。

4. 开发中可能会频繁出现的,char *类型和NSString *类型的互相转换,这里介绍两个函数,相信足够大家使用了:
①char *转换为NSString *
+ (id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)encoding
其中encoding是const char *的编码方式,只有知道了这个你才能完成转换
NSStringEncoding种类:
enum {
   NSASCIIStringEncoding = 1,
   NSNEXTSTEPStringEncoding = 2,
   NSJapaneseEUCStringEncoding = 3,
   NSUTF8StringEncoding = 4,
   NSISOLatin1StringEncoding = 5,
   NSSymbolStringEncoding = 6,
   NSNonLossyASCIIStringEncoding = 7,
   NSShiftJISStringEncoding = 8,
   NSISOLatin2StringEncoding = 9,
   NSUnicodeStringEncoding = 10,
   NSWindowsCP1251StringEncoding = 11,
   NSWindowsCP1252StringEncoding = 12,
   NSWindowsCP1253StringEncoding = 13,
   NSWindowsCP1254StringEncoding = 14,
   NSWindowsCP1250StringEncoding = 15,
   NSISO2022JPStringEncoding = 21,
   NSMacOSRomanStringEncoding = 30,
   NSUTF16BigEndianStringEncoding = 0x90000100,
   NSUTF16LittleEndianStringEncoding = 0x94000100,
   NSUTF32StringEncoding = 0x8c000100,
   NSUTF32BigEndianStringEncoding = 0x98000100,
   NSUTF32LittleEndianStringEncoding = 0x9c000100,
   NSProprietaryStringEncoding= 65536
};
②NSString *转换为char *
- (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding
用法基本同上,相信有了这两个方法,加上你对于C的了解,所有的字符串问题应该不会再困扰你了。

5. 举例说明一个ObjC类的实现

// NSCustomClass.h

// 自定义类头文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值