object-c基本知识

2024-06-06 11:58
文章标签 object 基本知识

本文主要是介绍object-c基本知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

总结程序启动的过程如下:

1. 程序入口main函数创建UIApplication实例和UIApplication代理实例。

2. 在UIApplication代理实例中重写启动方法,设置第一ViewController。

3. 在第一ViewController中添加控件,实现应用程序界面。

 

 

1.调用方法用[],继承用:


2.实例对象

一、NSString* string1 = [NSString string];    //自动释放

二、NSString* string2 = [[NSString alloc] init];    //用完后要手动释放,alloc分配内存和实例化,init初始化

[string2 release] ;         


3.创建对象

在Objective-C的语法中,一个类通常分为两部分。h文件声明,m文件实现。

方法都是public的,成员变量都是protect的,(方法前面用-减号,是public,+号即static方法)

protocol相当于java的接口

h文件,提供get,set访问器:

#import <Cocoa/Cocoa.h>
@interface Photo : NSObject {
NSString* caption;
NSString* photographer;
}
@property (retain) NSString* caption;
@property (retain) NSString* photographer;
@end


m文件,@synthesize指令为我们主动生成了setter和getter,所以我们必须要做的就
只有实现dealloc方法了。
只有当访问器不存在的时候,@synthesize才会自动生成访问器,所以,即使是使
用@synthesize声明了一个属性,你仍然可以实现自定义的getter和setter。

#import "Photo.h"
@implementation Photo
@synthesize caption;
@synthesize photographer;
- (void) dealloc
{
[caption release];
[photographer release];
[super dealloc];
}
@end



在dealloc方法里释放对象

‐ (void) dealloc
{
self.caption = nil;
self.photographer = nil;
[super dealloc];
}


4.nil

相当于其他语言的null指针,不同在于在nil上调用方法不会导致异常


5.类目(Category)

类似于重写(重点是 @implementation 跟 @interface 这 两 行的括号)

#import <Cocoa/Cocoa.h>
@interface NSString (Utilities)
- (BOOL) isURL;
@end


注意import重写的类+ 括号里的名字
#import "NSString-Utilities.h"
@implementation NSString (Utilities)
- (BOOL) isURL
{
if ( [self hasPrefix:@"http://"] )
return YES;
else
return NO;
}
@end

6.IBAction,IBOutlet 静态界面与代码的关联

通过在变量前增加IBOutlet来说明该变量将与界面上的某个UI对象对应,

在方法前增加IBAction来说明该方法将与界面上的事件对应.


7.异常(异常处理只有 Mac OS X 10.3 以上才支持)

@try{}

@catch{Exception *e}

@finally{}


8.id类型,不用知道上面类型,有此方法就响应,不用像java那样必须转换类型才能调用方法


9.迭代器NSEnumerator (NSArray不能改变长度,NSMutableArray可以)

NSDictionary相当于java的map

NSArray *array = [NSArray array ];
NSEnumerator *enumerator = [array objectEnumerator];
id obj;
while ( obj = [enumerator nextObject] ) {
printf( "%s\n", [[obj description] cString] );
}



这篇关于object-c基本知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036042

相关文章

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

深入探讨Java 中的 Object 类详解(一切类的根基)

《深入探讨Java中的Object类详解(一切类的根基)》本文详细介绍了Java中的Object类,作为所有类的根类,其重要性不言而喻,文章涵盖了Object类的主要方法,如toString()... 目录1. Object 类的基本概念1.1 Object 类的定义2. Object 类的主要方法3. O

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

了解journalctl的基本知识以及命令

目录 1. 基本知识2. 详细 1. 基本知识 journalctl 是一个用于查询和查看 systemd 日志的命令行工具,它可以访问系统日志、应用程序日志、内核日志等,提供丰富的过滤和查询功能 知识点描述日志文件位置journalctl 日志默认存储在 /var/log/journal/ 目录下。如果该目录不存在,日志存储在内存中日志持久化为了使日志持久化,可以手动创建 /

王立平--Object-c

object-c通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。在MA

Oracle数据库(权限、用户、角色、基本知识介绍)

Oracle数据库推荐以引用博客: http://blog.csdn.net/leshami/article/details/5611738 http://www.cnblogs.com/jimeper/p/3394635.html http://blog.csdn.net/bob007/article/details/5871126 本编文章内容分布:(1)介绍数据库常见分类(2)

COD论文笔记 ECCV2024 Just a Hint: Point-Supervised Camouflaged Object Detection

这篇论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点: 1. 动机 伪装物体检测(Camouflaged Object Detection, COD)旨在检测隐藏在环境中的伪装物体,这是一个具有挑战性的任务。由于伪装物体与背景的细微差别和模糊的边界,手动标注像素级的物体非常耗时,例如每张图片可能需要 60 分钟来标注。因此,作者希望通过减少标注负担,提出了一种仅依赖“点标注”的弱