La classe MPMoviePlayerController a le gros inconvénient de ne pas gérer correctement des vidéos les plus contemporaines, en plus de ce qui rend difficile de créer une séquence de la vidéo l'un après l'autre. che è una sottoclasse di AVPlayer ), appartenente al framework più a basso livello AVFoundation , è invece estremamente più versatile, nonostante mantenga egualmente una semplicità nell'implementazione. La classe AVPlayer (ou AVQueuePlayer qui est une sous-classe de AVPlayer ) appartenant au cadre de niveau inférieur AVFoundation , mais il est extrêmement polyvalent, aussi malgré le maintien de la simplicité dans la mise en œuvre.

En savoir plus ...
Le cadre fournit MapKit de nombreuses fonctionnalités utiles, sauf le retour de Latitude et Longitude partir d'une adresse. En JavaScript, par exemple, vous pouvez utiliser le service fourni par Google de géocodage et discutés dans Google Maps: Comment faire pour obtenir Latitude et Longitude partir d'une adresse . Le Apple iPhone ou iPad, cependant, vous pouvez surmonter l'obstacle par l'utilisation d'un différents services Google. En particulier, vous pouvez appeler directement l'url:
1
| http://maps.google.com/maps/geo?q = [adresse] & output = CSV |
Où est [indirizzo] pour entrer dans la chaîne avec l'adresse que vous voulez pour transformer les coordonnées. La sortie retournée est de type:
1
| 200,8,41.9128300,12.2241172 |
). La première valeur, 200 , indique que tout s'est bien passé ( 200 OK ). La seconde, 8 , est le paramètre de précision Google (1-10). Les deux dernières valeurs sont, enfin, la latitude et la longitude. Maintenant, nous voyons d'un prototype d'une méthode peut être inclus dans nos applications:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CLLocationCoordinate2D ) getLocationFromAddress : ( NSString * ) address { - (CLLocationCoordinate2D) getLocationFromAddress: ( NSString *) Adresse { urlString = [ NSString stringWithFormat : @ "http://maps.google.com/maps/geo?q=%@&output=csv" , NSString * urlString = [ NSString stringWithFormat: @ "% @ http://maps.google.com/maps/geo?q = & output = csv" NSUTF8StringEncoding ] ] ; [StringByAddingPercentEscapesUsingEncoding Adresse: NSUTF8StringEncoding]]; listItems = [ locationString componentsSeparatedByString : @ "," ] ; NSArray * ListItems = [locationString componentsSeparatedByString: @ ""]; / / Int zoom = 0; 0.0 ; latitude à double = 0,0; 0.0 ; à double longitude = 0,0; listItems count ] > = 4 && [ [ listItems objectAtIndex : 0 ] isEqualToString : @ "200" ] ) { if ([ListItems compte]> = 4 && [[objectAtIndex ListItems: 0] isEqualToString: @ "200"]) { / / Zoom = [[ListItems objectAtIndex: 1] intValeur]; listItems objectAtIndex : 2 ] doubleValue ] ; latitude = [[objectAtIndex ListItems: 2] doubleValue]; listItems objectAtIndex : 3 ] doubleValue ] ; longitude = [[ListItems objectAtIndex: 3] doubleValue]; { Else {} / / Erreur } CLLocationCoordinate2D emplacement; location.latitude = latitude; location.longitude = longitude; Lieu de retour; } |
Notes d'intérêt
, alla stregua della funzione explode ( ) del PHP per intenderci. La chaîne retournée dans locationString est "découpé" par la méthode componentsSeparatedByString , comme la fonction explode ( ) de PHP par exemple. Dans l'exemple que j'ai proposé je suis entré -, mais a commenté - le code pour récupérer même la précision des paramètres Google, la précision ou facteur d'échelle, notée par zoom .
Source comme
Pour être complet, j'ai fait un exemple d'application petite avec lequel vous pouvez essayer la méthode proposée ci-dessus, entrer d'adresse et de l'iPhone va afficher sur la carte.


Télécharger Source
Je remercie l'équipe devAPP pour l'inspiration de cet article.
En savoir plus ...
1. Cordes sur plusieurs lignes
Dans Xcode, vous pouvez "casser" une chaîne sur plusieurs lignes par l'insertion, à la fin avec une barre oblique inverse "\". Cette fonctionnalité peut être utile lorsque, par exemple, nous voulons insérer le texte HTML dans un contrôle UIWebView :
En savoir plus ...
Xcode est un environnement de développement vraiment bon, agréable et riche en détails qui rendent l'écriture de code efficace et agréable. Parmi ceux-ci est certainement la commodité d'auto-complétion lors de la saisie, en particulier lors de la rédaction des demandes de l'iPhone d'Apple, où les cadres sont nombreux, et se rappeler la syntaxe et de la nomenclature a entrepris quelques-uns.
En savoir plus ...
Comme on le voit dans le poste Variété de codage et le codage des approches qu'un développeur peut avoir à résoudre un problème sont multiples et diverses pour le même langage de programmation utilisé. Voici comment quelques-uns des principaux frameworks JavaScript ont résolu une simple fonction de CamelCase :
Prototype.js
Prototype.js , version 1.6.0.3, propose explicitement une méthode camelize() pour rendre le camelcase sur une chaîne de caractères. Démarche de l'auteur est assez simple et le code est auto-explicatif. Dans ce cas, il n'a pas été fait aucun usage de l'expression régulière!
1 2 3 4 5 6 7 8 9 10 11 12 13
| ( ) { camelize: function () { this . split ( '-' ) , len = parts. length ; . pièces var = cette scission («-»), len = parties de longueur;. len == 1 ) return parts [ 0 ] ; si les pièces de retour (len == 1) [0];
this . charAt ( 0 ) == '-' camelized var = ce charAt (0) ==. '-' 0 ] . charAt ( 0 ) . toUpperCase ( ) + parts [ 0 ] . substring ( 1 ) ? Pièces [0]. CharAt (0). ToUpperCase () + pièces [0]. Substring (1) 0 ] ; : Pièces [0];
var i = 1 ; i < len ; i ++ ) for (var i = 1, i <len; i + +) i ] . charAt ( 0 ) . toUpperCase ( ) + parts [ i ] . substring ( 1 ) ; camelized + = parties [i] charAt (0) toUpperCase () + pièces [i] substring (1)...;
retour camelized; } |
En savoir plus ...
Un bon développeur n'a aucun problème à passer d'un langage de programmation à l'autre. Le choix de se concentrer sur une langue, le cadre particulier ou environnement de développement, est plus dicté par la disponibilité de temps et le type de travail qui se fait. Cependant, un facteur important qui peut influer sur le choix de «cadre», telle est la sympathie et l'affection que peut mûrir au fil du temps.
En particulier, je voulais analyser quelques-uns - pas tous - des cadres Javascript disponibles aujourd'hui, parce que même «conseillé» de prendre un coup d'oeil particulier à jQuery .
Les créateurs de mootools (l'un des principaux frameworks JavaScript) ont mis à disposition un outil pour exécuter un test de vitesse et de la validité de cinq frameworks JavaScript bien connus: SlickSpeed . Cet essai, l'issue n'est pas du tout évident, est important que le travail sur les cadres des clients Javascript secondaires, qui sont effectués par notre fureteur. C'est précisément pour cette raison que certains trouvent Safari plus rapide que Internet Explorer ou Google Chrome plus rapide que Firefox . Toutefois, cela dépend souvent du type de page que vous consultez. En effet, il peut arriver qu'un site en particulier est vraiment "rapide" lorsqu'il est affiché dans Safari, mais cela ne signifie pas que «tous les sites" sera plus rapide avec Safari! Évidemment, cela est vrai pour n'importe quel autre navigateur.
L'indice de référence
Dans les tests que j'ai fait avec SlickSpeed j'ai comparé les navigateurs disponibles sur ma machine (Windows Vista 64 bits Utilmate - Intel Core 2 Quad 2,4 GHz à 8 Go de RAM).
Malheureusement, les tests ne sont pas en mesure de fonctionner avec Internet Explorer 7, que la voiture s'est écrasé, allant même hors d'échelle avec les résultats! Encore une fois, félicitations Microsoft.
Je crercato de maintenir l'état identique du PC au cours des tests de performance, l'ouverture des navigateurs individuellement et ne pas envoyer n'importe quel autre processus en cours d'exécution.
Remarque: Si vous avez envie vous aussi exécuter une ou plusieurs de ces tests, vous pouvez commenter sur ce post en cas de résultats "étranges" et différent.

Google Chrome a été très rapide, avec une valeur de 68 (moyenne) dans l'essai avec jQuery . La plus lente, cependant, était Flock , même s'il vient de la même «mère» de Mozilla. Cette mauvaise performance de Flock est vraiment curieux que ses coupe les réseaux sociaux, car c'est précisément le Web social Network 2.0 pour profiter des nombreux frameworks JavaScript disponibles, afin de fournir une expérience de navigation réellement innovante et l'interaction.
Étonnamment bat FireFox et Opera dispose également d'un «joli petit, même obtenir un 74 dans l'accomplissement de Dojo ! FireFox et Safari, après tout, sont similaires, avec Safari plus rapide dans des essais avec Mootools et jQuery.
Quel cadre choisir?
Si nous ne se soucie pas de tester la rapidité d'exécution et nous ne nous soucions dimesion en Koctets de le même cadre, la réponse peut être "ce que vous voulez" ou, si vous voulez, "ce que vous savez mieux ou plus harmonieuse avec votre le style de programmation. "
En fin de compte, ces cadres se penchera tout un peu "(voir par exemple l'utilisation de $), en dépit de quelques différences importantes et substantielles qui peuvent sauter aux yeux d'un expert ou vraiment poussé à l'utilisation d'une bibliothèque particulière. En principe, en fait, tout ce qui peut être fait avec jQuery, par exemple, vous pouvez faire bien avec mootools ou prototype! Si jQuery a une syntaxe très compact, comme toutes les méthodes retournent toujours la base objet jQuery, créant ainsi d'interminables rangées de oggetto.metodo().metodo().metodo()... a dit que ce n'est pas du tout coûte une force, en particulier pour ceux qui auront à déboguer!
Bibliothèques comme prototype.js péché, peut-être en l'absence d'effets, même simples, ce qui oblige le développeur à mettre en œuvre, une entreprise dérivée scriptaculous.js , lourds et éloignées de la première bibliothèque choix.
Un exemple
Précisément pour cette raison, par exemple, m'a amené à remplacer le prototype couplé / scriptaculous avec jQuery pour créer des panneaux interactifs ou undolog.com animation ici dans la barre latérale. En effet, même avec l'API Google pour importer des bibliothèques, est un chargement de déchets tout la bibliothèque et scriptaculous pour un slideUp slideDown. Pour plus d'informations et un exemple, voici le code Javascript comme il a été couplé avec le prototype / scriptaculous:
1 2 3 4 5 6 7 8 9 10 11 12 13
| / / Prototype / Scriptaculous ) . each ( $ $ ('H2.dropdown'). Chaque ( element ) { fonction (element) { = "pointer" ; .. élément de style curseur = "pointeur"; 'click' , élément. observer («clic», event ) { function (event) { this . next ( ) . style . display == "" ) new Effect. BlindUp ( this . next ( ) , { duration : .5 } ) ; if (.. this. next () le style d'affichage == "") Effet nouvelle BlindUp (this. next (), {duration: 0.5});. Effect. BlindDown ( this . next ( ) , { duration : .3 } ) ; Effet chose de nouveau BlindDown (this. next (), {duration: 0.3}).; event ) ; . Événement Stop (événement); } ) } ); |
et il est maintenant avec jQuery:
1 2 3 4 5 6 7 8 9 10
| / / JQuery ) . each ( $ ('H2.dropdown'). Chaque ( i ) { fonction (s) { ) . css ( 'cursor' , 'pointer' ) . click ( $ (Ce). Css ('curseur', 'pointer'). Cliquez sur ( la fonction () { $ ( this ) . next ( ) . is ( ':hidden' ) ) $ ( this ) . next ( ) . slideDown ( ) ; else $ ( this ) . next ( ) . slideUp ( ) ; if (.. $ (this) suivante () est (': hidden')) $ (this) next () slideDown (); else $ (this) next () slideUp ();.... } ); } ); |
Dans l'ensemble, un peu plus près, je ne crois pas qu'il existe une grande différence! Mais comme je l'ai déjà dit ... la question est "bien" de goût personnel.
En savoir plus ...
Qu'est-ce?
N3TV Interactive Platform est la plate-forme d'interactivité N3TV.it , le fruit de Thomas Tessarolo , "Blogger action" fait valoir que si le Net TV n'est certainement pas limitée à des mots seuls, mais agit concrètement l'expérience de première main ce que signifie "Net TV", offrant des outils logiciels capables de fournir la nouvelle génération de interaction en ligne.
La plate-forme interactive N3TV plate-forme a donc pour objectif de fournir l'interactivité durant les nombreuses propositions de la télévision en direct N3TV.it .

N3TV.it: l'un avec N3TV Interactive Plate-forme
En savoir plus ...
Il est disponible pour mettre à jour l' IDE Aptana , l'environnement de développement Web qui prend en charge Adobe AIR et l'iPhone d'Apple . Parmi les nouvelles améliorations de la section PHP par la mise à jour du Code Assist fonctions sur les deux paramètres. Également amélioré la «couleur» du code. Ajout du support pour les cadres dernières Ajax, y compris prototype.js et jQuery . Également amélioré la manipulation de Javascript.

Pour la liste complète des nouvelles fonctionnalités , cliquez ici .
En savoir plus ...
Parmi les diverses bibliothèques - ou ensemble de bibliothèques (cadre réel), dédiés à l'Ajax, HTML, et l'extension de l'interface Web 2.0 qui je l'ai vu, Ext est certainement digne de mention. Le site et la documentation sont bien fait et organisé, aussi la démo est à ne pas manquer. L'interface utilisateur graphique, compatibilité avec Prototype , et Scriptaculous , et impletazione de Utils Yahoo, font un système intéressant, au moins! Méfiez-vous si la licence! Malgré se présentant comme l'open source et gratuit pour usage personnel, nécessite un abonnement afin d'améliorer l'utilisation et l'entretien. Ce dernier, en effet, est de ne jamais être sous-estimée dans le cadre d'une certaine complexité.
Pour la documentation et de démonstration , cliquez ici .
En particulier, je mentionne ce système, je suis en train d'analyser en détail, car elle a été utilisée pour créer des Feed Reader frais , l'un des exemples d'applications fournis avec la version d'Adobe Apollo Alpha (voir d'Adobe Apollo Alpha Release ). frais, donc, est un exemple de deux d'Apollon, ce qui démontre sa capacité à utiliser de l'HTML et Javascript au plus. Frais, en fait, n'est pas un pur Apollon, mais utilise le cadre Ext - puis Javascript et HTML - Apollo le moteur! Grande!
En savoir plus ...
Derniers Commentaires
Marquez : Merci beaucoup, je l'ai allumé
Je l'ai résolu par la mise en [cc_objc] / / OptionViewController.m - ...
Giovambattista Fazioli : @ Mark: Je vous suggère de réfléchir une approche plus correcte. Si vous exécutez la sous-classe de l'onglet ...
Mark : Excusez le spam .. J'ai remarqué qu'il ya une erreur .. voici la correction [cc_objc] / PrimaClasse.h **** / # import ...
Marco : oubliée .. dans [cci] OptionViewController [/ cci] pour [cci] @ syntetize [/ cci] J'ai mis le délégué
louis : très clair et simple, je dois avouer que rédiger un an à peine utiliser des délégués créés par ...