oc

OC的UI开发基础之选择器——UIPickerView和UIDatePicker

 ̄綄美尐妖づ 提交于 2019-12-15 19:39:28
@implementation ViewController - ( void ) viewDidLoad { [ super viewDidLoad ] ; // Do any additional setup after loading the view. UIPickerView * pickerview = [ [ UIPickerView alloc ] initWithFrame : CGRectMake ( 50 , 100 , 300 , 100 ) ] ; //设置代理 pickerview . delegate = self ; //设置数据源 pickerview . dataSource = self ; /** 时间选择器(这个没有代理方法) */ UIDatePicker * datePicker = [ [ UIDatePicker alloc ] initWithFrame : CGRectMake ( 50 , 300 , 300 , 100 ) ] ; //设置显示模式 /** UIDatePickerModeTime, UIDatePickerModeDate, UIDatePickerModeDateAndTime, UIDatePickerModeCountDownTimer, 计时模式 */ datePicker .

OC

末鹿安然 提交于 2019-12-12 21:01:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Oc 继承于 C,C 的语法 OC 都能用,关于常量: 在程序运行过程中,其值不能改变的数据对象,称之为常量。 C 语言中,常量有数字,如 24 ,字符,例如 ’a’ 和字符串,例如“ myName ”三种。在程序中,常量不需要声明可以直接使用。 一. C 语言中有整数和实数俩种数: 1.1 整形常量:整形常数,整数、 十进制整数以正负号开头,如 1 , -1 八进制整数以正负号开头,第一位数字一定是 0 ,如 0123 ( 83 ), -012 ( -10 ) 十六进制整数以正负号开头,前俩位为 0x 。如 0x123 ( 291 ), -0x12 ( -18 ) 1.2 实型常量 ( 1 )小数形式 ( 2 )指数形式 ( 3 )双精度实数 二.字符常量 字符型数据用于表示字符值,字符数据的内部表示是字符的 ASCII 代码,并非字符本身,例如 ’A’ 是 65 , ’a’ 是 97. 一个字符常量在计算机存储中占一个字节,由于字符常量是以编码形式存放的,所以可以参与各种运算。 三 字符串常量 字符串常量是一对双引号(“”)括起来的字符序列,字符的个数称为其长度,简称为字符串。例如“ how are you ”,“ C program ”都是字符串常量。 长度为 n 的字符串,在计算机存储器中占 n+1

OC 数组以及字符串拼接与分割

你说的曾经没有我的故事 提交于 2019-12-11 15:32:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.OC的数组成员是任意的对象指针 与C中的链表结构类似(以nil结尾) 一切的数组操作不能 越界 OC的数组分为不可变数组 NSArray 可变数组 NSMutableArray NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three", nil]; NSLog(@"%@",[array objectAtIndex:0]);//通过下标获取数组成员(下标从0开始) NSLog(@"%ld",[array count]);//获取数组有效成员个数 (不包括nil) for (i = 0; i < [array count]; i++) {//遍历数组(C方法) NSLog(@"%@",[array objectAtIndex:i]); } NSLog(@"%@",array);//(OC)查看数组内容(先给array发送description消息,然后给每个成员都发送一个description消息) NSArray * array1 = [[NSArray alloc]initWithArray:array];//创建数组对象 相当于拷贝 NSArray * arry2 = [NSArray arrayWithArray

OC中的NSDictionary(字典)

穿精又带淫゛_ 提交于 2019-12-10 16:19:14
字典的基本概念 OC中的字典( NSDictionary , NSMutableDictionary )是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样. 通过 key (键),查找的对应的 value (值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中, key的值必须是唯一的 . 此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象 字典中存储方式是无序的,因为字典是没有下标的!!! 字典中存储方式是无序的,因为字典是没有下标的!!! 字典中存储方式是无序的,因为字典是没有下标的!!! NSDictionary(字典) 字典的初始化 key不要重复,重复了只识别第一个 int main(int argc, const char * argv[]) { @autoreleasepool { //不可变字典 //只有一个键值对的字典初始化 //将整数1转化成NSNumber类型,用a存放 NSNumber *a = [NSNumber numberWithInt:1]; //定义一个只有一个键值对的字典b,value值是"xiaoming", key值是a(其实就是1) NSDictionary *b = [NSDictionary dictionaryWithObject:@"xiaoming"

OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)

主宰稳场 提交于 2019-12-10 16:19:01
一:字典的基本概念 Foundation中的字典(NSDictionary和NSMutableDictionary)是由键(key)和值(value)组成的数值集合,就像我们查字典一样,通过键(key)来查找到值(value)。 key值通常是字符串对象,也可以是任意其他类型的对象,在一个字典对象中,key值必须是唯一的。 此外字典的键和值不能为空(nil),如果想在字典中加入一个空值,可以引入NSNull对象。 注意:① 字典的对象储存是没有顺序的。 ②NSMutableDictionary是NSDictionary的子类,能使用其所有方法。 ③NSMutableDictionary是NSDictionary的可修改版 ④ 字典的值(value)可以是任何类型的对象 //例如:字典的值(value)可以是数组 NSArray *arr=@[ @"1",@"2" ]; NSDictionary *dict=@{ @"name" : @"Peter", @"age" : @"18", @"subject" :arr }; 二:不可变字典( NSDictionary ) ①字典的初始化 //---简便方式 NSDictionary *dict=@{ @"name":@"Peter", @"age":@"18" }; //---dictionaryWithObjectsAndKeys

iOS中的内存管理(上)

天大地大妈咪最大 提交于 2019-12-10 14:22:07
下列行为都会增加一个app的内存占用: 1、创建一个OC对象; 2、定义一个变量; 3、调用一个函数或者方法。 如果app占用内存过大,系统可能会强制关闭app,造成闪退现象,影响用户体验。如何让回收那些不再使用的对象呢?本文着重介绍OC中的内存管理。 所谓内存管理,就是对内存进行管理,涉及的操作有: 1、分配内存:比如创建一个对象,会增加内存占用; 2、清除内存:比如销毁一个对象,会减少内存占用。 内存管理的管理范围: 1、任何继承了NSObject的对象; 2、对其他非对象类型无效(int、char、float、double、struct、enum等) 只有OC对象才需要进行内存管理的本质原因: 1、OC对象存放于堆里; 2、非OC对象一般放在栈里面(栈内存会被系统自动回收) 系统是如何判断什么时候需要回收一个对象所占用的内存呢?在这里涉及到对象的“引用计数器”的概念。 引用计数器: 每个OC对象都有自己的引用计数器,它是一个整数;每个OC对象内部都有4个字节的存储空间来存放引用计数器。 从字面上看,引用计数器可以理解为“对象被引用的次数”。 简单来说,可以理解为: 引用计数器 表示有多少人正在使用这个对象。 当没有任何人使用这个对象时,系统才会回收这个对象;也就是说: 1、当对象的引用计数器为0时,对象占用的内存就会被系统回收; 2、如果对象的计数器不为0

oc的内存管理机制.及自动释放池的解析

安稳与你 提交于 2019-12-10 13:47:04
一.内存管理的方式 MRC 人工引用计数:内存的开辟和释放由程序代码无师自通控制,() ARC 自动引用计数(不是自动内存管理)(编译器帮助程序员默认加了释放代码) 在C中使用malloc和free oc中内存管理的机制 oc中提供了一个“引用计数”的机制来管理内存的。 每一个对象都有一个引用计数,对象在建立的时候引用计数为1,当引用计数为0的时候,对象将被系统统一销毁,我们可以通过调用一些方法来操作引用计数的值。 引用计数加1的方法有 alloc copy retain 以及其他类或对象的强引用,在arc中strong 相当于原来的 retain,weak相当于原来的assign,成员变量是弱指针. alloc 为一个新对象分配内存,并且它的引用计数为1,调用alloc方法,你便有对新对象的所有权 copy 制造一个对象的副本,该副本的引用计数为1,调用者具有对副本的所有 权 retain 使对象的引用计数加1,并且获得对象的所有权 放弃所有权的方法: release 使对象的引用计数减1,并且放弃对象的所有权 autorelease 使对象的引用计数在未来 的某个 时候 减1,并且在那个时候 放弃对象的所有权 注:arc中不允许调用release ,retain retainCount, 内存管理对于C语言基本类型无效. 所有oc对象都有一个计数器,保留着当前被引用的数量.

snapKit自动布局库前身是OC版的Masonry

烈酒焚心 提交于 2019-12-09 19:54:34
使用方法是通过snp_makeConstrainsts方法给view添加约束,分别有边距、宽、高、坐上右下距离、基准线。同时,添加过约束后可以有修正,修正有位移修正(inset、offset)和倍率修正(multipliedBy) iconView.snp_makeConstraints { (make) in make.edges.equalTo(contentView) } 语法一般是:make.equalTo或make.greaterThanOrEqualTo或make.lessThanOrEqualTo+倍数和位移修正 .equalTo:等于 .lessThanOrEqualTo:小于等于 .greaterThanOrEqualTo:大于等于 注意: 使用snp_makeConstrainsts方法的元素必须事先添加到父元素中 2.约束条件参数支持类型 (1)视图属性(ViewAttribute) 视图属性(ViewAttribute) 布局属性(NSLayoutAttribute) view.snp_left NSLayoutAttribute.Left view.snp_right NSLayoutAttribute.Right view.snp_top NSLayoutAttribute.Top view.snp_bottom NSLayoutAttribute

C++与java混合编写和C++与OC混合编写 笔记

拈花ヽ惹草 提交于 2019-12-09 17:29:17
1 、 Java 与 C++ 混合编写: 使用 JNI(Java 本地调用 ) 实例 :cocos2dx/platform/android/jni 对应目录 cocos2dx/platform/android/java const char* getConstStrRetuen(const char* funcName) { JniMethodInfo t; std::string ret; if (JniHelper::getStaticMethodInfo(t, "org/cocos2dx/lib/Cocos2dxHelper", funcName, "()Ljava/lang/String;")) { jstring retFromJava = (jstring)t.env->CallStaticObjectMethod(t.classID, t.methodID); const char* str = t.env->GetStringUTFChars(retFromJava, 0); ret = str; t.env->ReleaseStringUTFChars(retFromJava, str); t.env->DeleteLocalRef(t.classID); } return ret.c_str(); } const char* getDEVICENAME() {

OC之成员变量封装

南笙酒味 提交于 2019-12-09 16:52:36
#import<Foundation/Foundation.h> @interface Student : NSObject { // 成员变量尽量不要用 @public // @public int age; // @public // 只读( readonly ):只允许外界访问我的 no ,不允许外界修改我的 no int no; // 只需要提供 get 方法 } /* set 方法 1. 作用: 提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤 2. 命名规范: ( 1 ) 方法名必须以 set 开头 ( 2 ) set 后面跟上成员变量的名称,成员变量的首字母必须大写 ( 3 )返回值一定是 void ( 4 ) 一定要接收一个参数,而且参数类型跟成员变量类型一致 ( 5 ) 形参的名称不能跟成员变量名一样 */ - (void)setAge:(int)newAge; /* get 方法 1. 作用:返回对象内部的成员变量 2. 命名规范: ( 1 ) 肯定有返回值,返回值类型肯定与成员变量类型一致 ( 2 ) 方法名跟成员变量名一样 ( 3 ) 不需要接收任何参数 */ - (int)age; - (void)study; @end @implementation Student // set 方法的实现 - (void)setAge:(int