IOS语言总结
本文主要介绍和C++不同的地方。
1、类的定义:
一个类有两个文件一个.h还有一个.m文件
#import <Foundation/Foundation.h> @interface MyClass : NSObject {
@public
int _a;//公开方法
NSString *_name;
@private
int _b;//私有方法
}
- (void)test; //实例方法
+ (void)static_test;//静态方法
@end
头文件中内容如上。一个类的声明用@interface开头@end结尾。
大括号中间的成员变量,可以表示public和private还有protected。objc的推荐方式是成员变量前面加“_”。
方法分成两种,如果是实例方法,也就是非静态的方法必须以“-”开头,如果是静态方法必须要以“+”开头。
#import "MyClass.h" @implementation MyClass {
int a;
float b; }
- (void)test { } + (void)static_test { } @end
m文件类似c++中的cpp文件,一个文件以@implementation开头以@end结尾。
大括号中间可以声明一些变量,这些变量只能在本文件中使用,有点类似于C的全局静态变量,不过我不明白这个和h文件中的私有变量有什么区别?
2、键值编码
@interface User : NSObject
@property(nonatomic, copy) NSString *name;
@property(nonatomic, copy) NSString *pass; @end
User *user = [[User alloc] init];
[user setValue:@"jack" forKey:@"name"]; //键值编码
[user setValue:@"" forKey:@"pass"];
类似于java的反射获取成员变量,不过更加方便。
3、类别(category)
@interface User (u)
-(void) login;
@end
[user login];
类似于的C#的拓展方法。
4、扩展 和类别一样,不过没有()中间的类了
5、委托
@protocol Mydelegate//协议的声明 - (void)Fun; @end @interface ClassA : NSObject { id <Mydelegate> delegate;//声明一个委托对象,我们要把事情委托给实现Mydelegate协议的类 }
@property(assign,nonatomic) id<Mydelegate> delegate; - (void)FunToOther;
@end
@implementation ClassA { } - (id)init { delegate = [ClassB alloc];
return self; } - (void)FunToOther { [delegate Fun];//将消息发送给委托去处理 } @end
@implementation ClassB { }
-(void) Fun{
NSLog(@"BBBBBBB"); }
@end
ClassA *a1 = [[ClassA alloc] init];
[a1 FunToOther];
这个就和C#中的委托时一个意思
IOS语言总结的更多相关文章
- iOS 语言国际化配置
所谓的iOS 国际化,就是根据系统不同的语言自动切换. 首先,如图: 创建一个.strings文件,以“Localizable.strings”为文件名: 创建完之后,在XCode的右边勾选自 ...
- iOS 语言切换、本地化,国际化
什么是本地化处理? 本地化处理就是我们的应用程序有可能发布到世界的很多国家去,因为每个国家应用的语言是不一样的,所以我们要把我们的应用程序的语言要进行本地化处理一下. 本地化处理需要处理那些文件? ( ...
- iOS语言国际化
参考网站:http://blog.sina.com.cn/s/blog_7b9d64af0101jncz.html 语言国际化:根据系统不同的语言自动切换 Xcode6.2 一.在不同语言下工 ...
- 3分钟实现iOS语言本地化/国际化(图文详解)
前言 语言本地化,又叫做语言国际化. 是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言. 往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这 ...
- iOS语言本地化,中文显示
尽管一直相信xcode肯定提供有语言本地化的设置地方,可是一直也没凑着去改.非常多的汉化,还是使用代码去控制:比方navagition的return使用代码改动为"返回"! 近期在 ...
- iOS开发——iOS国际化 APP内语言切换
最近一个一直在迭代的老项目收到一份新的开发需求,项目需要做国际化适配,简体中文+英文.由于项目中采用了storyboard和纯代码两种布局方式,所以国际化也要同时实现.上网查了些资料,实现了更改系统语 ...
- iOS - 实现语言本地化/国际化
实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个 ...
- [[其他教程]] 2015年最新版iOS基础视频_最适合初学者入门
主讲:孙庆虎类型:iOS 适合对象:初学者入门视频介绍:本视频是iOS学院精心录制的免费精华版iOS语言基础视频,该视频特点在于最大程度保证了知识点的完整性,按知识点进行视频录制,每个视频控制在20分 ...
- ios 关于文件操作 获取 文件大小
分类: Apple IPhone2012-06-28 11:31 4664人阅读 评论(0) 收藏 举报 ios语言manager测试c c语言 实现 #include "sys/stat ...
随机推荐
- JavaScript:正则表达式 分组
在现在的我看来,带小挂号的就是分组,嗯. 代码: var reg=/(abc)/; var str="abcdabcdeabcdef"; console.dir(reg.exec( ...
- Pandas fillna('Missing')
https://blog.csdn.net/donghf1989/article/details/51167083/ .使用0替代缺失值(当然你可以用任意一个数字代替NaN) df.fillna(0) ...
- 【maven】在IDEA上 使用maven进行打包时报错:Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.3:jar
报错内容如下: [INFO] ------------------------------------------------------------------------ [INFO] BUILD ...
- Asp.net自定义单选复选框控件
将常用的jquery插件封装成控件也是个不错的选择 下面是效果的简单颜色,由于博客系统的限制没法完整演示最终效果,请下载示例查看 Asp.netWeb APIC#Javascript 1.新建类库 ...
- mybatis 问题
applicationContext.xml报错https://bbs.csdn.net/topics/392184546MyBatis SqlSessionFactory的几种常见创建方式https ...
- shell 注释
以 # 开头的行就是注释,会被解释器忽略. 通过每一行加一个 # 号设置多行注释,像这样: #-------------------------------------------- # 这是一个注释 ...
- Netcat使用方法
netcat被誉为网络安全界的‘瑞士军刀',相信没有什么人不认识它吧...... 一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据.它被设计成一个稳定的后门工具,能够直接由其它 ...
- [ios]NSThread传值 NSValue传值
NSThread:http://www.cocoachina.com/bbs/read.php?tid=51873 NSValue:http://blog.sina.com.cn/s/blog_bf9 ...
- c++ primer plus 第七章 课后题答案
#include <iostream> using namespace std; double HAR_AVG(double, double); void TEST(bool); int ...
- Python - configParser模块学习
configParser 模块用于操作配置文件 注:Parser汉译为“解析”之意. 配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键= ...