Apple SeismicXML示例应用程序

时间:2010-11-09 15:37:53

标签: iphone objective-c xml

在此类的SeismicXMLAppDelegate实现文件中,它们具有以下代码:


// forward declarations

@interface SeismicXMLAppDelegate ()



@property (nonatomic, retain) NSURLConnection *earthquakeFeedConnection;

@property (nonatomic, retain) NSMutableData *earthquakeData;    // the data returned from the NSURLConnection

@property (nonatomic, retain) NSOperationQueue *parseQueue;     // the queue that manages our NSOperation for parsing earthquake data



- (void)addEarthquakesToList:(NSArray *)earthquakes;

- (void)handleError:(NSError *)error;

@end

为什么他们在实现文件中有第二个接口?

http://developer.apple.com/library/ios/#samplecode/SeismicXML/Listings/Classes_SeismicXMLAppDelegate_m.html#//apple_ref/doc/uid/DTS40007323-Classes_SeismicXMLAppDelegate_m-DontLinkElementID_10

1 个答案:

答案 0 :(得分:2)

这是Objective-C中的扩展(或匿名类别)

您可以添加属性,更改其属性并声明此示例中的新方法。 为什么不在接口文件中执行此操作? 好吧,出于设计目的,可能有很多原因,以免暴露某些属性等等。

例如,即使您myAppDelegate.earthquakeData,也无法从RootViewController.m致电#import "SeismicXMLAppDelegate.h"。 您只能从earthquakeData类内部访问SeismicXMLAppDelegate属性。

您可以在此处详细了解类别和扩展程序:The Objective-C Programming Language