`
一口三个汉堡
  • 浏览: 115948 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Objective-C面向对象编程的基本应用

    博客分类:
  • iOS
阅读更多

    《Objective-C 程序设计(第4版)》这本书的试读章节有两章,分别是 类、对象和方法,数据类型和表达式。无可厚非,Objective-C是一门面向对象的语言,如果使用面向对象的编程思想对使用他,并应用到具体的开发中,我觉得是iOS程序员的基本功,《Objective-C 程序设计(第4版)》,我看了两章,特别是第一张,作者的讲解的方式,都是从面向对象的方面去讲解这门语言,而不是单单怎么用进行描述。我也根据面向对象的思想写了一个小demo来讲解怎么在iOS开发中使用他。
     我创建了一个名叫WJHProudct的类,他有productId,productName,productImageName这三个属性,分别是商品id,商品名和商品图片名。并实现了两个方法,一个是description方法,还有一个是dealloc,在我看到了两个章节里面并没有介绍到这两个方法,可能在其他章节上会介绍,后者是用来释放资源,前者是用来描述这个类产生的对象的,如果没有实现这个方法,那么当我们使用NSLog打印WJHProudct的对象时,会看到这样的信息,<WJHProduct: 0x685d010>,也就是类名+对象地址,当我们想要知道这个对象具体是怎样时,这样的数据显然没什么用处,如果实现了,则会看到product:id:id:9,name:第9款,image:image,也就是你在Description的返回值,这个方法类似Java 的String方法。当我们在打印一个元素类型为WJHProudct的数组时,也会出现上面的效果,实现这个方法或许会花点时间,但是在调试的时候,他起到的作用,帮助是很大的。
     下面是两个类的代码。
WJHProduct.h

#import <Foundation/Foundation.h>

@interface WJHProduct : NSObject

@property (retain, nonatomic) NSString *productId;
@property (retain, nonatomic) NSString *productName;
@property (retain, nonatomic) NSString *productImageName;

@end


WJHProduct.m

#import "WJHProduct.h"

@implementation WJHProduct

@synthesize productId = _productId;
@synthesize productName = _productName;
@synthesize productImageName = _productImageName;

- (NSString *)description{
  NSString *tempDescription = [NSString stringWithFormat:@"id:%@,name:%@,image:%@",_productId,_productName,_productImageName];
  return tempDescription;
}

- (void)dealloc{
  [_productId release];
  [_productName release];
  [_productImageName release];
  [super dealloc];
}

@end



    而在真实的开发中,如果应用到这个类呢?我想要创建一个商品列表,用来展示我的商品,每件商品都是WJHProduct的一个对象,并且每件商品我想要显示的样式是这样的,那么就想要我定义这样一个Cell来显示,


 所以我创建了一个WJHProductCell类,他具有一个product的属性,这样我只要将WJHProduct对象发送给他,就可以,他负责显示出来,我并不需要关心他们内部是怎么实现了,这样也就是封装,很多人都是喜欢在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法里面对每个Cell进行赋值,但是我觉得他既然要显示这样的样式,
那么就需要- (void)setProduct:(WJHProduct *)product的技能,那么我只要知道,我亲爱的UITableViewCell需要一个WJHProduct的对象,然后我给他,至于怎么显示就是他的事了,下面是UITableViewCell的代码
WJHProductCell.h

#import <UIKit/UIKit.h>

#import "WJHProduct.h"

@interface WJHProductCell : UITableViewCell {
  
  
  IBOutlet UIImageView *_productImageView;
  IBOutlet UILabel *_productIdLabel;
  IBOutlet UILabel *_productNameLabel;
}

@property (retain, nonatomic) WJHProduct *product;

@end


WJHProductCell.m

#import "WJHProductCell.h"

@implementation WJHProductCell

@synthesize product = _product;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

- (void)setProduct:(WJHProduct *)product{
  if (_product) {
    [_product release];
    _product = nil;
  }
  _product = [product retain];
  
  _productImageView.image = [UIImage imageNamed:_product.productImageName];
  _productIdLabel.text = _product.productId;
  _productNameLabel.text = _product.productName;
}

- (void)dealloc {
    [_product release];
  
    [_productImageView release];
    [_productIdLabel release];
    [_productNameLabel release];
    [super dealloc];
}
@end

 

 

    这篇文章只写关于iOS的面向对象开发,不想介绍iOS开发的其他内容,想知道的可以看《Objective-C 程序设计(第4版)》,我想作者会介绍得很清楚的,我只是简单描述下我的想法,后面是具体的效果还有整个Demo的代码,我的开发环境的Mac OS X 10.8.2 Xcode4.5.


  • 大小: 10.5 KB
  • 大小: 40 KB
0
0
分享到:
评论

相关推荐

    objective-c 面向对象编程

    Objective-C是一种基于C语言的面向对象编程(OOP)语言,尤其在苹果的iOS和macOS开发中占据核心地位。它的设计目标是扩展C语言,使其支持类、消息传递和其他面向对象特性。以下是对Objective-C面向对象编程的详细...

    Objective-C面向对象编程与设计模式详解:iOS开发基础

    使用场景及目标:适用于希望深入了解 Objective-C 面向对象编程和设计模式的开发者,通过理论和实践相结合的方式提升 iOS 应用开发技能。 其他说明:文章不仅涵盖基础理论,还提供了大量代码示例,帮助读者更好地...

    基于Objective-C的面向对象编程

    ### 基于Objective-C的面向对象编程 #### 一、Objective-C简介 Objective-C是一种设计用来支持面向...通过理解和掌握面向对象编程的基本原则和Objective-C的特定功能,开发者可以构建出更加强大和灵活的应用程序。

    Objective-C 2.0 运行时系统编程指南

    Objective-C是一种面向对象的编程语言,它以其独特的动态性而闻名。这种动态性体现在它能够尽可能地将决策过程推迟到运行时执行,而不是在编译或链接阶段。因此,Objective-C不仅依赖于编译器,还需要一个强大的运行...

    Objective-C编程全解最新版.pdf.zip

    Objective-C是一种强大的面向对象的编程语言,特别是在iOS和macOS应用程序开发中占据核心地位。"Objective-C编程全解最新版.pdf.zip"这个压缩包显然包含了关于Objective-C编程的全面教程,旨在帮助开发者深入理解并...

    Objective-C语言核心教程:基础语法与面向对象编程应用

    内容概要:本文档详细介绍了Objective-C编程语言的基本语法、面向对象编程特征及其在Mac OS X和iOS平台的应用。主要包括语言特点介绍、开发环境搭建、基础语法讲解、面向对象概念解析、内存管理和引用计数、...

    objective-c运行时编程指南

    Objective-C是一种强大的面向对象编程语言,它在编译和链接阶段保留了大量的灵活性,将其推迟至运行时处理。这种特性使得Objective-C能够在运行时动态地加载类、解析方法并进行消息转发等操作。本指南旨在详细介绍...

    基于 Objective-C 的面向对象编程 中文

    ### 基于Objective-C的面向对象编程:深入解析与应用 #### 一、Objective-C简介 Objective-C是一种通用、面向对象的编程语言,由苹果公司广泛用于开发macOS和iOS应用程序。它结合了C语言的高效性与Smalltalk语言的...

    Objective-J 面向对象javascript

    通过学习Objective-J,开发者可以利用熟悉的面向对象编程理念来构建高性能、互动性强的Web应用。虽然Objective-J并非JavaScript的标准部分,但它为那些习惯于Objective-C语法或Cappuccino框架的开发者提供了一种新的...

    Objective-C中面向对象编程的协议与委托机制详解

    内容概要:本文详细介绍了 Objective-C 中面向对象编程的基本概念和高级主题,重点讲解了协议与委托模式的应用。文章首先从类与对象、继承与封装、方法与消息传递等方面介绍了面向对象的基础。随后,详细探讨了协议...

    Objective-c语言学习-快速入门完整版完整版

    Objective-C是一种强大的面向对象编程语言,它是苹果生态系统中开发iOS和macOS应用程序的主要语言。本教程将通过一系列的PPT课件,引导你快速入门Objective-C,这些课件覆盖了从基础到高级的重要概念,是《iPhone与...

    Objective-C基础教程(入门教程).pdf

    综上所述,本教程覆盖了Objective-C编程语言的基础知识点,不仅包括语法和结构,还包括与C语言的兼容性、内存管理机制、面向对象编程的核心概念、以及如何在不同操作系统平台上进行开发的介绍。通过这些内容的学习,...

    Objective-C 编程语言.pdf

    1. **面向对象**:Objective-C支持封装、继承和多态等面向对象编程的基本特性,使得代码更加模块化和可重用。 2. **动态消息传递**:Objective-C采用了一种称为“动态消息传递”的机制,允许运行时决定对象接收的...

    objective-c编程 第2版=objective-c program 2nd edition_13889311

    书中会讲解消息传递的原理,包括动态绑定和多态性,这些都是理解面向对象编程的关键。 4. **内存管理**:Objective-C在早期版本中采用的是手动内存管理,即引用计数。书中可能会涵盖如何使用retain、release、...

    Objective-C语言教程

    Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写简单的Objective-C程序并逐渐掌握更复杂的概念。继续学习和实践,...

    Objective-C 2.0运行时系统编程指南

    Objective-C是一种面向对象编程语言,其运行时系统(Runtime System)是整个语言体系中非常核心的部分,它负责在程序运行期间管理对象和类的行为。以下是对知识点的详细说明: 1. Objective-C运行时系统的概念 ...

    Objective-C高级编程†

    Objective-C是一种强大的面向对象的编程语言,主要用于Apple的iOS和macOS平台开发。它是由Stepanov和Moss在C语言的基础上添加了Smalltalk的面向对象特性而创建的。本资料"Objective-C高级编程"旨在帮助已经入门的iOS...

Global site tag (gtag.js) - Google Analytics