Я решил свой вопрос, и вот ответ:
1. Во-первых, мой сервис должен возвращать наблюдаемый, если статус ошибки 404:
verifyRegisterFacebookObs(user): Observable<any> {
let url = URL_SERVICIOS + '/users/verify';
return this.http2.post(url, user)
.map(res => res['result'])
.catch(error => {
if (error.status === 404)
return Observable.of("");
})
}
Я изменил свою функцию verifyFacebookUser
verifyFacebookUser (): Observable {let userFacebook = {"type": "facebook", "id_facebook": this.userId};
return this._us.verifyRegisterFacebookObs(userFacebook)
.flatMap(token => {
if (!token) {
return this._us.facebookRegisterObs({"id_facebook": this.userId}).flatMap(user => {
return Observable.fromPromise(this.storage.set('token', user.token));
})
}
else {
return Observable.fromPromise(this.storage.set('token', token));
}
}, error => {
error => console.log("FIRST ERROR" + JSON.stringify(error));
})
.flatMap(res => {
return Observable.fromPromise(this.storage.get('token'));
})
.flatMap(tokenStorage => {
let decodedToken = this.jwtHelper.decodeToken(JSON.stringify(tokenStorage));
let idUser = parseInt(decodedToken.id);
return this._ups.getUserProfileObs(idUser);
})
}
Как вы можете видеть, если токена не существует, я обращаюсь к this._us. facebookRegisterObs, немедленно сохраните токен для продолжения потока.
Наконец, я звоню так:
this.subscription=this.verifyFacebookUser()
.subscribe((user: User) => {
this.processDataObs(user);
loading.dismissAll();
}, error => {
console.log("Error on flow ---" + error);
loading.dismissAll();
this.presentToast("Ups... ha ocurrido un error con facebook");
})
Не забывайте отписываться:
ionViewWillLeave() {
if (this.subscription)
this.subscription.unsubscribe();
}
UIImageView* view = [[UIImageView alloc] initWithImage: [UIImage imageNamed: @"your_image.png"]];
view.frame = CGRectMake(0, 0, width, height);
Для получения кадра экрана iPhone, можно использовать
CGRect frame = [[UIScreen mainScreen] bounds];
В Интерфейсном Разработчике выберите свой UIImageView. Из меню Tools выберите "Инспектора Атрибута". В палитре Image View Attributes выберите "Масштаб для Заполнения" из всплывающего окна Режима. Это должно масштабировать Ваше изображение для установки.
Мой ImageView был установлен в IB, и я должен буду показать повторные изображения, таким образом, установит изображение imageView, вместо того, чтобы создать ImageView для отдельного изображения.
После того, как я установил формат кадра представления изображения, я, все еще видят тот же результат, изображение было слишком большим, так, чтобы только часть изображения была отображена на экране.