`
一口三个汉堡
  • 浏览: 111580 次
  • 性别: 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
分享到:
评论

相关推荐

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    Objective-C 是一种强大而灵活的编程语言,它结合了 C 语言的性能和灵活性以及面向对象编程的特性。本教程提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C 编程,并开始构建 macOS 和...

    Objective-C语言教程

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

    Objective-C基础教程+随书源代码

     Objective-C是创建Mac OS应用和iPhone应用的主要语言,优雅的面向对象编程环境与C语言特性珠联璧合,造就了它的不俗表现。  本书全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例...

    Objective-C基础教程

    Objective-C是创建Mac OS应用和iPhone应用的主要语言,优雅的面向对象编程环境与C语言特性珠联璧合,造就了它的不俗表现。 《Objective-C基础教程》全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要...

    Objective-C基础教程随书源码

    Objective-C是创建Mac OS应用和iPhone应用的主要语言,优雅的面向对象编程环境与C语言特性珠联璧合,造就了它的不俗表现。 《Objective-C基础教程》全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要...

    Objective-C.程序设计(第4版)扫描版带书签

    本书用丰富而详实的实例讲解了如何使用Objective-C,无需你有任何C语言或面向对象编程语言的经验。在内容上,本书在上一版的基础上进行了更新和扩充,它基于Objective-C2.0。 本书不仅详细说明了如何充分利用...

    ### Objective-C的介绍、使用技巧和经典案例

    Objective-C结合了C语言的功能和面向对象编程的特性,具有灵活性强、功能丰富的特点,被广泛应用于苹果的软件开发领域。本文将介绍Objective-C的基本概念、使用技巧以及一些经典案例,帮助用户更好地了解和应用这一...

    Effective Objective-C 2.0

    从语法、接口与api设计、内存管理、框架等7大方面总结和探讨了objective-c编程中52个鲜为人知和容易被忽视的特性与陷阱。书中包含大量实用范例代码,为编写易于理解、便于维护、易于扩展和高效的objective-c应用提供...

    Objective-C

    这些资源详细介绍了Objective-C的基本语法、数据类型、控制结构以及面向对象编程的核心概念,帮助开发者建立起坚实的编程基础。 其次,网络上有很多在线学习平台、视频教程和博客文章,这些资源为学习者提供了更加...

    [Objective-c程序设计].杨正洪等.扫描版

    《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...

    Objective-C 是一种面向对象的编程语言,主要用于 macOS 和 iOS 平台的应用程序开发

    Objective-C 是一种面向对象的编程语言,主要用于 macOS 和 iOS 平台的应用程序开发

    Programming in Objective-C 4th Edition

    本书用丰富而详实的实例讲解了如何使用Objective-C,无需你有任何C语言或面向对象编程语言的经验。在内容上,本书在上一版的基础上进行了更新和扩充,它基于Objective-C2.0。 本书不仅详细说明了如何充分利用...

    Objective-C基础教程(第2版)

    全面系统地讲述了Objective-C的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性及框架,以及继承、复合、对象初始化、类别、协议、内存管理和源文件组织等重要编程技术,教你如何针对iOS或...

    破解Objective-C面试:笑到最后的技术攻略!.zip

    技术关键词:Objective-C、iOS开发、Mac OS X、编程语言、面向对象编程、内存管理、自动引用计数(ARC)、协议(protocol)、类扩展(category)、键值观察(KVO)、键值编码(KVC)、Block、Delegate模式、多态性、...

    Objective-C对象模型及应用

    Objective-C是一门面向对象的编程语言。每一个对象都是一个类的实例。在Objective-C语言的内部,每一个对象都有一个名为isa的指针,指向该对象的类。每一个类描述了一系列它的实例的特点,包括成员变量的列表,成员...

    Objective-C2.0程序设计

    13.3.5 不要忘记面向对象编程思想 13.4 指针 13.4.1 指针和结构 13.4.2 指针、方法和函数 13.4.3 指针和数组 13.4.4 指针运算 13.4.5 指针和内存地址 13.5 联合 13.6 它们不是对象 13.7 其他语言特性 13.7.1 ...

Global site tag (gtag.js) - Google Analytics