1

ユーザーが自分のアプリで Facebook 経由でログインするときに独自のトークン キャッシュを管理する手順に従いましたが、ログイン ボタンを押すと常にクラッシュします。次のように呼び出します。

NSDictionary *data = [[NSDictionary alloc] initWithContentsOfFile:self.tokenFilePath];

そしてクラッシュします。初期化を変更すると

_tokenFilePath = [self filePath];

self.tokenFilePath = [self filePath];

その後、クラッシュしませんが、ログインする前にログインボタンを複数回押す必要がある場合があります。これを修正するにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

0

ARC を使用していない場合は、保持の違いが生じます。

self.tokenFilePathがセッターを呼び出し、そのセッターが の保持カウントを増やしていますfilePath

ARC を使用せずに ivar に直接割り当てても、保持カウントは増加しません。使用する:

_tokenFilePath = [[self filePath] retain];

ARC を使用すると、直接割り当てにより保持カウントが増加します。

于 2013-01-12T18:21:35.573 に答える