当前位置: 首页 > news >正文

网站图片翻页效果如何做云搜索神器

网站图片翻页效果如何做,云搜索神器,在线爬取网页源码,织梦做中英文网站步骤本节用一简短的文章来说下是ObjectiveC中的类。类其实是OOP中的一个概念,概念上简单来讲类是它是一组关系密切属性的集合,所谓的关系就是对现实事物的抽象。 上面提到的关系包括很多种,比如has a, is a,has some等&…

本节用一简短的文章来说下是ObjectiveC中的类。类其实是OOP中的一个概念,概念上简单来讲类是它是一组关系密切属性的集合,所谓的关系就是对现实事物的抽象。

  • 上面提到的关系包括很多种,比如has a, is a,has some等;
  • 关系是一种抽象过程,源于对事务的理解,同时还要平衡开发的成本,这是一门艺术;

类的结构

OOP标准结构

下图是一张通用的类完整结构图表示,本章暂时只讲最基础的部分,后续章节会围绕这个基础逐渐深入展开。
在这里插入图片描述
几点需要说明下:

  1. 在OOP世界中,所有的类都有一个默认的父类,一般称为基类。比如java里的基类名为Object,ObjectiveC中的基类名称为NSObject。
  2. OOP中不允许多继承,ObjC也不例外;
  3. 协议可以实现多个,即一个类可以实现多种不同的协议;

OOP在ObjC中的实现

ObjectiveC中的代码实现模式:
在这里插入图片描述
几点需要说明下:

  1. 在ObjectiveC中,会把一个类拆分成两个文件接口(.h)和实现(.m)。
  2. ObjectiveC中的文件只是一个载体,具体的定义是由关键标识来定义的,比如在一个.h文件中可以定义多个接口定义;在一个.m文件中也可以定义多个接口的实现

在同一个.m文件中书写全部的代码,这种方式并不推荐,因为会给维护带来很大问题。

#import <Foundation/Foundation.h>
// ----------------------类声明----------------------------
@interface Fraction : NSObject
@end // Tire// -----------------------类实现---------------------------
@implementation Fraction- (NSString *) description
{return (@"I am a tire. I last a while");
} // description@end // Tire// -----------------------main入口函数---------------------------
int main(int argc, const char * argv[]) {@autoreleasepool {Fraction *engine = [Fraction new];}return 0;
}// main

所以推荐的类组织方式是:

分离接口和实现

把@interface和@implementation代码定义在同一个.m文件中,这种方式呢做练习用还可以,如果是正式的程序就不太方便了。因为这样的话在代码行数比较多时维护会是个大总是,所以最好的方法是分离接口和实现,实现分而治之,如下:
在这里插入图片描述

创建类文件

使用XCode工具,在“New File时”选择Cocoa class创建文件时会自动分离.h和.m,如下图所示:
在这里插入图片描述
在下一步窗口中添填写新创建的类名称,也可以选择需要继承的父类(父类可以是自定义的类):
在这里插入图片描述
最后设置文件存放目录,也可以设置目标和群组,复杂的项目可以有多个组和目标:
在这里插入图片描述

  • Group:Group主要是用于管理项目的源文件,比如可以创建两个Group,一个用于存放UI文件,一个用于存放处理程序类。Group不是java中package的概念,它是XCode的一个逻辑分组并不会真正的移动文件位置,甚至可以让Group指向磁盘上某个特定的文件夹;
  • Target:简单可理解应用编译后的运行环境,比如一个IOS程序,其可以设置多个不同的目标如iphone12、iphone13等,每个目标采用不同的配置,这样也比较方便测试其兼容性;

.h类声明实现

相当于类功能的描述,默认格式上文件名与类名相同。在.h文件中一般用于定义类的@interface指令、公共的struct定义、enum常量、#defines和extern全局变量。新创建一个Fraction.h文件,代码示例如下:

#import <Foundation/Foundation.h>@interface Fraction : NSObject-(void) print;@end //end Fraction

.m类功能实现

相当于类功能的实现,默认格式上文件名与类名相同。在.m一般用于定义类的@implementation指令、私有的struct定义、extern全局变量定义。新创建一个Fraction.m文件

如果创建的是以.mm为后缀的文件则可以同时使用C++和ObjectiveC语法,示例代码如下:

#import "Fraction.h"@implementation Fraction {//私有属性int numerator;int denominator;
}
- (void) print {NSLog(@"%i / %i", numerator, denominator);
}- (void) setNumerator:(int) n {numerator = n;
}- (void) setDenominator:(int) d {denominator = d;
}
@end

分离后的代码会有如下特点:

  1. 在@interface中引入的头文件,可直接继承到@implementation实现中不必重复导入,比如在.h文件中import <Foundation/Foundation.h>,则.m文件中就不需要再写一遍了(虽然可以);
  2. 在 @implementation 实现中也可以定义 @interface 中未出现过的方法和变量,但要注意不要和.h文件中定义的变量名重复;
  3. 在@implementation或@interface中定义的方法的参数名称尽量不要和自定义的变量重名,所以给变量前面加上self是一个非常好的习惯,比如下列代码;
//声明部分
-(void) setNumerator: (int) name;//实现部分
NSString *name;
- (void) setDenominator:(int) name {name = name;//上面这行代码必须替换为如下代码,否则会发生错误self.name = name;
}

类的实例化

类可以通过new或alloc关键字实现实例化,类的实例化是一大块内容,本节只需简单了解其使用调用,如果用XCode创建工程,则会默认生成一个名为main.m的文件,里面包含一个main方法(注意:一个工程只允许存在一个main()方法)。

// -----------------------main入口函数---------------------------
int main(int argc, const char * argv[]) {@autoreleasepool {Fraction *engine = [[Fraction alloc] init];}return 0;
}

类的组合

上述就是最简单类的实现,下面看到类封装的基本用法。也是一种最简单的设计模式组合。比如描述一辆汽车:
在这里插入图片描述
对象组合其实是一种设计思想,并不是一种技术框架实现。类的扩展有分类和协议两种技术,另一种技术就是合成对象,它可以定义一个类包含其他类的一个或多个对象,这个新类就是所谓的合成对象。即手动处理,比如父子类的实现可修改成如下代码:

@interface Car: NSObject{Tires *tires[4]; //4条轮胎Engine *engine; //1个引擎
}@interface Tires: NSObject{int par; //标准的气压值int position;//安装位置
}@interface Engine: NSObject{NSString *name; //引擎名称
}
http://www.ds6.com.cn/news/25943.html

相关文章:

  • wap网站制作软件公司网站建设哪家公司好
  • 南京做网站多少钱国外网站建设
  • 青海西宁网络科技乌鲁木齐seo
  • 谁做政府网站群内网短视频新媒体推广
  • 网站建设 国际 深圳百度直播平台
  • 电影订票网站怎么做网络安全
  • b2b网站建设百度网盘网页版入口
  • 广州市移动网站建设服务公司关键词查网站
  • 章丘网站优化优化营商环境 提升服务效能
  • 做网贷网站多少钱个人在线做网站免费
  • 现在房子装修流行什么风格seo网站外包公司
  • 做彩票网站制作2023年8月疫情恢复
  • 网站的外部链接怎么做网络营销公司如何建立
  • 1688批发厂家直销seo外链发布
  • 威海企业做网站哪家好广州百度竞价外包
  • 怎么查公司名称是否被注册商标河南整站百度快照优化
  • 菏泽网站建设信息五种新型营销方式
  • 可以做网站的appb站推广2023
  • v电影主题 wordpress开封网站优化公司
  • 深圳做积分商城网站建设营销型网站建设怎么做
  • 网站一般做多大的google移动服务应用优化
  • 国家和城乡建设部网站大连网站seo
  • 网站横幅怎么制作教程活动营销案例100例
  • 关于企业网站建设的必要性搜索引擎营销总结
  • 政府网站集约建设日本比分算1:1
  • 做游戏网站的分析百度广告怎么投放
  • 上海做网站设计的公司百度小说
  • 移动端网站生成器百度搜索入口网址
  • 网站建设的需求分析网站开发的流程
  • 国家企业事业部门网站做的垃圾互联网广告联盟