私は自分のアプリケーションにサンプルコードをダウンロードしてevernoteを統合しました。そうでなければうまくいきます。それは、ユーザ名とパスワードの静的な値を含むシングルトンクラスを持っていることだけです。このクラスの.hファイルの.mファイルにこのiphone sdkでのシングルトンパターンの問題
extern NSString * const username;
extern NSString * const password;
@interface Evernote : NSObject {
Evernote *sharedEvernoteManager;
}
のように見えます
NSString * const username = @"username";
NSString * const password = @"password";
@implementation Evernote
/************************************************************
*
* Connecting to the Evernote server using simple
* authentication
*
************************************************************/
- (void) connect {
if (authToken == nil)
{
// In the case we are not connected we don't have an authToken
// Instantiate the Thrift objects
NSURL * NSURLuserStoreUri = [[[NSURL alloc] initWithString: userStoreUri] autorelease];
THTTPClient *userStoreHttpClient = [[[THTTPClient alloc] initWithURL: NSURLuserStoreUri] autorelease];
TBinaryProtocol *userStoreProtocol = [[[TBinaryProtocol alloc] initWithTransport:userStoreHttpClient] autorelease];
EDAMUserStoreClient *userStore = [[[EDAMUserStoreClient alloc] initWithProtocol:userStoreProtocol] autorelease];
// Check that we can talk to the server
bool versionOk = [userStore checkVersion: applicationName :[EDAMUserStoreConstants EDAM_VERSION_MAJOR] : [EDAMUserStoreConstants EDAM_VERSION_MINOR]];
if (!versionOk) {
// Alerting the user that the note was created
UIAlertView *alertDone = [[UIAlertView alloc] initWithTitle: @"Evernote" message: @"Incompatible EDAM client protocol version" delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil];
[alertDone show];
[alertDone release];
return;
}
// Returned result from the Evernote servers after authentication
EDAMAuthenticationResult* authResult =[userStore authenticate:username :password : consumerKey :consumerSecret];
// User object describing the account
self.user = [authResult user];
// We are going to save the authentication token
self.authToken = [authResult authenticationToken];
// and the shard id
self.shardId = [user shardId];
// Creating the user's noteStore's URL
noteStoreUri = [[[NSURL alloc] initWithString:[NSString stringWithFormat:@"%@%@", noteStoreUriBase, shardId] ] autorelease];
// Creating the User-Agent
UIDevice *device = [UIDevice currentDevice];
NSString * userAgent = [NSString stringWithFormat:@"%@/%@;%@(%@)/%@", applicationName,applicationVersion, [device systemName], [device model], [device systemVersion]];
// Initializing the NoteStore client
THTTPClient *noteStoreHttpClient = [[[THTTPClient alloc] initWithURL:noteStoreUri userAgent: userAgent timeout:15000] autorelease];
TBinaryProtocol *noteStoreProtocol = [[[TBinaryProtocol alloc] initWithTransport:noteStoreHttpClient] autorelease];
noteStore = [[[EDAMNoteStoreClient alloc] initWithProtocol:noteStoreProtocol] retain];
}
}
私は
を次のように私はテキストフィールドの値を使用できるように、ユーザー名とパスワードダイナミックを行う必要がありNSString * const username = usernametextfiled.text;
NSString * const password = passwrdfiled.text;
@implementationの前にテキストフィールドを追加できないというエラーが表示されます。この問題を解決するには?
で変数を解放することを忘れないでください
を使用して設定...、それらを設定することができますEvernote sharedEvernoteManagerを使用して利益を得る? – Shubhank
@ Shubhank私はあなたに説明してください。 – stackiphone