随笔分类 -  OC

摘要:分析: OC中对象的init方法有两种: 指定初始化器(Designated Initializers )、便利初始化器(Convenience Initializers) Designated Initializers能保证初始化所有需要初始化的数据,RD需要自己保证,可能有多个不同方法,代表从不 阅读全文
posted @ 2021-05-10 15:23 NeoZy 阅读(627) 评论(0) 推荐(0)
摘要:OC由于是C的超集,所以可以直接用enum来声明枚举。 但如果想要使用NSInteger作为enum的底层类型。 需要两步:声明枚举enum,再typedef。 使用NS_ENUM直接一步搞定。 // // main.m // Hello Objective-C // // Created by a 阅读全文
posted @ 2020-12-20 19:50 NeoZy 阅读(194) 评论(0) 推荐(0)
摘要:OC的==只能用来判断基本数据类型,如果用来判断其他类型,实际比较的是内存地址(显然不同对象用==比较一定会返回false);由于不像C++有运算符重载,OC中使用isEqual来判断两个对象的内部值是否相同。 注意,默认isEqual和==是一样的,对于NS对象都是比较内存地址(对于非NS对象当然 阅读全文
posted @ 2020-12-20 17:23 NeoZy 阅读(216) 评论(0) 推荐(0)
摘要:所谓指定初始化方法一般是参数最多、最齐全的那个init方法,通过它可以指定该类所有的实例变量(成员变量)的值。 而其它初始化方法会调用指定初始化方法,某些参数可能会使用默认值。 如: @interface ClassA : NSObject - (instancetype)initWithInt:( 阅读全文
posted @ 2020-12-18 14:17 NeoZy 阅读(368) 评论(0) 推荐(0)
摘要:由于OC单继承,所以如果不想改动原有类(生成子类),那么可以使用协议来扩展原有的类。 OC的协议可以定义方法,遵守协议的类必须实现这些方法。 调用方式和C++模板类一样 @import Foundation; @protocol myProtocol_1 <NSObject> //协议 -(void 阅读全文
posted @ 2020-12-02 14:12 NeoZy 阅读(218) 评论(0) 推荐(0)
摘要:关键字: @try @catch @finally @throw 注意:当前catch到的异常可以重新throw出去,但当前的异常处理会先执行完毕再执行其他的。 int main(int argc, char* argv[]) { @try{ @try { NSException *e = [NSE 阅读全文
posted @ 2020-12-02 02:02 NeoZy 阅读(201) 评论(0) 推荐(0)
摘要:练习下api,但mentor说api可以后置,先学习语法和框架思想,感觉相当有道理,所以api就先不练了,用到再临时看 int main(int argc, const char * argv[]) { int num = 6; num = 5; printf("%d\n", num); char 阅读全文
posted @ 2020-12-01 16:25 NeoZy 阅读(175) 评论(0) 推荐(0)
摘要:OC和C++一样,可以多态,但不能多继承。但好像可以通过协议实现(学会了再加到这里)。 下面是一个简单的继承例子:NSObject-->A-->B。 另外子类的变量可以指向一父类的值,这点和C++一样,调用的也是父类的方法。 // // main.m // Hello Objective-C // 阅读全文
posted @ 2020-11-26 17:34 NeoZy 阅读(119) 评论(0) 推荐(0)
摘要:// // MyFirstClass.h // Hello Objective-C // // Created by admin on 2020/11/16. // #import <Foundation/Foundation.h> @interface Car : NSObject @proper 阅读全文
posted @ 2020-11-26 11:33 NeoZy 阅读(100) 评论(0) 推荐(0)
摘要:输入:scanf,注意scanf的指示符不加@ #import <Foundation/Foundation.h> #import "MyFirstClass.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSLog( 阅读全文
posted @ 2020-11-26 10:53 NeoZy 阅读(482) 评论(0) 推荐(0)
摘要://1)创建一个空数组 NSArray *arr1 = [NSArray array]; //2)创建数组,只有一个元素 NSArray *arr2 = [NSArray arrayWithObject:@"1"]; //4)调用对象方法,创建数组 //nil Nil NULL NSNULL NSA 阅读全文
posted @ 2020-11-25 18:23 NeoZy 阅读(353) 评论(0) 推荐(0)
摘要:#import <Foundation/Foundation.h> #import "MyFirstClass.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str = @"123456789"; 阅读全文
posted @ 2020-11-25 15:10 NeoZy 阅读(144) 评论(0) 推荐(0)
摘要:公司业务需要转ios,学习一下 OC中get方法函数名一般直接命名为对应的实例变量(成员变量)名字,setter方法的函数名为set加实例变量名字,注意驼峰命名。 main.m: #import <Foundation/Foundation.h> #import "MyFirstClass.h" i 阅读全文
posted @ 2020-11-24 21:20 NeoZy 阅读(275) 评论(0) 推荐(0)