美文网首页
二、Working with Objects

二、Working with Objects

作者: iEugene | 来源:发表于2020-02-23 09:45 被阅读0次

类工厂方法调用

//createInstance函数实现了SimpleClass类对象创建
//返回类型id,表示返回值是某一对象的指针
SimpleClass *simpleClass = SimpleClass.createInstance;
// SimpleClass *simpleClass = [SimpleClass createInstance];

创建类对象语法

//alloc函数用来给对象清理内存、分配内存,init函数用来确保属性值被正确初始化
//官方认为正确的方式
[[SimpleClass alloc] init];
//new关键字创建对象类似于 alloc init
//[SimpleClass new];

函数调用

[simpleClass sayHello:@"Objective-C" myName:@"Eugene"];
[simpleClass someMethodWithValue:@"SimpleClass" secondParam:24];

控制台输出
Hello Objective-C!, My name is Eugene
Hello SimpleClass!, My name is 24
字面量对象创建简洁语法

NSString *someString = @"Hello World";
NSNumber *myBOOL = @YES;
NSNumber *myFloat = @3.14f;
NSNumber *myInt = @42;
NSNumber *myLong = @42L;
NSNumber *myInt = @(84 / 2);

Objective-C是动态类型语言,类似Java语言中的多态特性,所以在声明一个对象指针的时候尽量不要使用id关键字,因为这样会在编译期间丢失对象信息,导致某些异常信息不能及时被发现。

对象指针比较

if (firstPerson == secondPerson) {
        // 判断两个指针是否指向同一个对象
}
if ([firstPerson isEqual:secondPerson]) {
        // 判断两个两个对象数据是否相等
}
if ([someDate compare:anotherDate] == NSOrderedAscending) {
        // 比较两个对象数据大小
}

空值nil,作为返回值对象类型空值为nil,数字类型是0,布尔类型是NO

if (somePerson != nil) {
        //不是空指针
}
if (somePerson) {
        //不是空指针
}
if (somePerson==nil) {
        //是空指针
}
if (!somePerson) {
        //是空指针
}

PS: Automatic Reference Counting (ARC) ,Objective-C 编译器功能,自动优化内存管理机制,防止内存堆中的对象数据出现内存泄露。

相关文章

网友评论

      本文标题:二、Working with Objects

      本文链接:https://www.haomeiwen.com/subject/xrjafhtx.html