会话和_session(facebook整合)

我下载的Facebook集成代码…和我的应用程序工作正常..

我只是想知道session_session之间有什么区别

还有loginDialog_loginDialog

感谢帮助…:)

@interface MyFbViewController :UIViewController <FBSessionDelegate, FBRequestDelegate> { FBSession* _session; FBLoginDialog *_loginDialog; } @property (nonatomic, retain) FBSession *session; @property (nonatomic, retain) FBLoginDialog *loginDialog; @end 

在MyFbViewController.m文件………

 @synthesize session = _session; @synthesize loginDialog = _loginDialog; 

_session_loginDialog是类的实例variables。 因此,您完全负责对这些variables进行内存pipe理(即保留和释放),就像使用其他variables一样。

属性会话和loginDialog与synthesize语句结合生成两个类属性,而这又是唯一的select器。

@synthesize session = _session; 基本上生成两个方法, - (FBSession *)session;- (void)setSession:(FBSession *)newSession; 只要你使用对象属性的点符号(即object.session )就会调用它。 你可以自己写,省去了综合,但很less做,因为你再次负责内存pipe理。

由于这些属性是retain属性,自动生成的方法处理必要的保留/释放的东西,可能看起来像这样:

 - (FBSession *)session { return _session; } - (void)setSession:(FBSession *)newSession { if (newSession != _session) { [_session release]; [newSession retain]; _session = newSession; } } 

只要将属性设置nil (因为这将释放任何现有对象),就可以将其从内存pipe理负担中解放出来。

_session是你的variables。 会话是您的访问者。

你可以写_sessionself.session但不能写self._session或只是session

但是, _sessionself.session并不是一回事。 self.session调用生成的getter或setter属性参数。

对于非primefaces样本,请保留这样的setter:

 - (void) setSession:(FBSession*)session { if(_session != session) { [_session release]; _session = [session retain]; } } 

这段代码为你pipe理内存。 如果直接使用_session,则旧值永远不会释放(并泄漏),新值不会保留。

会话前的_表示这个variables是私人的,你不必直接访问它

你的属性几乎总是有一个后备variables。 什么

@synthesize session = _session; 是声明您的search栏的支持variables将被称为_session。 这使您可以将属性的名称与variables的名称分开。 事实上,如果你不使用@synthesize,你根本不需要有一个后备variables。

它避免了与variables名称的冲突,并且在我使用局部variables和使用实例variables时清楚地说明了这一点。

如您所见,有一个名为session属性和一个名为_session实例variables 。 属性自动生成访问器(如果你把它们合成)。 他们可以通过使用dot-syntax( self.session )或者使用setter和getter( [self setSession:yourSession] / [self session]访问,这个属性使用一个backstore(由于属性本身不存储信息,他们只是提供一个访问数据的接口)名为_session 。这些访问器负责内存pipe理,所以你应该只使用这些。

足够的等等等等:大多数情况下,如果你有一个财产,你应该使用它。 所以在你的代码中使用self.session而不是_session

Objective-C编程指南详细介绍了着名的iOS开发人员库中的属性