2015-11-04 5 views
0

До этого я работал в объекте C. Теперь мне нужно закодировать свой проект на быстром языке. При принятии вызова веб-службы с помощью классов AFNetworking я создал класс с именем, как FSAPI, в котором я создаю следующие 2-х блоковЗначение типа 'AnyObject' не имеет имени пользователя 'loginUserWithUsername'

typedef void (^requestCompletionBlock) (AFHTTPRequestOperation *operation, id responseObject); 
typedef void (^requestFailureBlock) (AFHTTPRequestOperation *operation, NSError *error); 

и следующие методы для входа в систему

//****************** Login Service **********************// 
- (void)loginUserWithUsername:(NSString *)username 
      andPassword:(NSString *)password 
      andGrant_type:(NSString *)grantType 
    withCompletionBlock:(requestCompletionBlock)completionBlock 
     andFailureBlock:(requestFailureBlock)failureBlock; 

Теперь я не знаю, в быстро, как я могу сделать этот звонок. Я уже создал мостовой заголовочный файл и импортировал файл FSAPI.h.

FSAPI.sharedClient().loginUserWithUsername("", andPassword: "", andGrant_type: "", withCompletionBlock: requestCompletionBlock() { 
    AFHTTPRequestOperation, id in 

     //to do 

     }, andFailureBlock: requestFailureBlock() { 

     }) 

+ (id)sharedClient { 
    static FSAPI *sharedClient = nil; 
    static dispatch_once_t oncePredicate; 
    dispatch_once(&oncePredicate, ^{ 
     sharedClient = [[self alloc] initWithBaseURL:[NSURL  URLWithString:baseServerURL]]; 
    }); 
    return sharedClient; 
} 

Пожалуйста, помогите мне. Заранее спасибо.

+1

Пожалуйста, покажите, как 'sharedClient()' определяется. В настоящее время он напечатан как AnyObject, и это не то, что вы хотите. – Moritz

+0

добавлено определение sharedClient(). – Arti

ответ

0

Попробуйте это как блоки в стрижа рассматривается как закрытие,

FSAPI.sharedClient().loginUserWithUsername("", andPassword: "", andGrant_type: "", withCompletionBlock: { (operation, response) -> Void in { 

    //to do in success case 

    }, andFailureBlock: { (operation, error) -> Void in { 

     //to do in error case 

     }) 
0

Попробуйте это

Замените id на instancetype.

+ (instancetype)sharedClient { 
    static FSAPI *sharedClient = nil; 
    static dispatch_once_t oncePredicate; 
    dispatch_once(&oncePredicate, ^{ 
     sharedClient = [[self alloc] initWithBaseURL:[NSURL  URLWithString:baseServerURL]]; 
    }); 
    return sharedClient; 
} 
+0

[FSAPI .sharedClient() .loginUserWithUsername ("", andPassword: "", andGrant_type: "", withCompletionBlock: Пустота { }>, andFailureBlock: requestFailureBlock (AFHTTPRequestOperation !, NSError!) -> Void { })]; Не могли бы вы рассказать мне, что не так с вышеуказанной строкой кода? – Arti

Смежные вопросы