May 20 2008

iPhone-Dev: CoCoa.h not found

quelle: iphone-dev

 

: 3.11. Cocoa.h anlegen

In vielen Codebeispielen und Cocoa Libs findet man immer wieder die include

Anweisung:

#import <Cocoa/Cocoa.h>Da die Datei Cocoa.h bei den Headern des Toolchains nicht vorhanden ist, nimmt der Compiler an dass es sich um die Cocoa.h von OS X handelt. In dieser Cocoa.h werden aber Header vom AppKit Framework eingebunden, was wiederum zu einem Fehler beim kompilieren führt, da die iPhone Firmware das AppKit Framework nicht kennt. Aus diesem Grunde muss man sich eine eigene Cocoa.h Header-Datei mit folgendem Inhalt erstellen:

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

Diese Datei speichert man am besten auf dem Desktop ab und führt dann folgende Befehle aus:

sudo mkdir /usr/local/arm-apple-darwin/include/Cocoa

sudo mv ~/Desktop/Cocoa.h /usr/local/arm-apple-darwin/include/Cocoa/Cocoa.h

Die Toolchain ist nun fertig eingerichtet. Nun kann man per Hand bzw.

Makefile Binaries fürs iPhone kompilieren. Da wir aber mit Xcode entwickeln wollen, müssen wir noch ein Xcode Template installieren.

 

 


May 20 2008

iPhone-Dev – UIWebview.h – UIKeyboardInputProtocol.h not found

--- UIWebView.h~	2007-09-19 13:53:04.000000000 -0400
+++ UIWebView.h	2007-09-19 13:53:54.000000000 -0400
@@ -6,11 +6,11 @@

 #import <UIKit/UITiledView.h>

-#import "UIKeyboardInputProtocol.h"
+//#import "UIKeyboardInputProtocol.h"

-@class DOMHTMLElement, DOMNode, DOMNode<UIFormControl>, NSTimer, UIAutoscrollTimer, UIInformalDelegate, UITextLoupe, UITextTraits, UITextView, UIView, WebPDFView, WebView;
+@class DOMHTMLElement, DOMNode, DOMNode/*<UIFormControl>*/, NSTimer, UIAutoscrollTimer, UIInformalDelegate, UITextLoupe, UITextTraits, UITextView, UIView, WebPDFView, WebView;

-@interface UIWebView : UITiledView <UIKeyboardInput>
+@interface UIWebView : UITiledView /*<UIKeyboardInput>*/
 {
     struct WKWindow *_window;
     WebView *_webView;
@@ -40,7 +40,7 @@
         char isTransitioning;
         char zoomsFocusedFormControl;
         struct CGRect cachedBoundingBox;
-        DOMNode<UIFormControl> *element;
+      DOMNode/*<UIFormControl>*/ *element;
         UIInformalDelegate *delegate;
     } _forms;
     struct {

May 13 2008

Google: label suche

sucht man zum beispiel nur iphone open source projekte auf google:

http://code.google.com/hosting/search?q=label:iphone


May 13 2008

cygwin (portable) auf usb stick

quelle: http://www.nailware.de/linux/portable-cygwin-linuxanwendungen-berall-dabei-sogar-windows

 

Mit portable Cygwin Linuxanwendungen überall dabei – und das sogar unter Windows

Cygwin ist eine tolle Möglichkeit Linuxanwendungen parallel zu Windowsanwendungen laufen zu lassen. Der Vorteil gegenüber anderen Linuxversion wie Knoppix ist, dass Cygwin direkt unter Windows läuft. Man muss also nicht in Linux “reinbooten” sondern kann ganz normal unter Windows weiterarbeiten.

Wer also häufiger mal an einem Windows-Rechner sitzt und sich ein paar Linux-Tools wünscht hat mit Cygwin genau die richtige Lösung zur Hand.

Das einzige Problem: Cygwin lässt sich nicht einfach so als “Portable App” nutzen. Abhilfe schaft ein Script das ich bei Devin Sezer gefunden habe. Dieses Batchprogramm “merkt” sich quasi die Registryeinträge und entfernt sie nach der Nutzung von Cygwin wieder, so dass auf dem eingesetzten Computer keine Rückstände hinterlassen werden.

Für alle die des englischen nicht so mächtig sind fasse ich mal kurz zusammen wie es geht:

Zuerst benötigt man natürlich einen USB-Stick, dieser sollte mit fat32 formatiert sein, da es laut Devin Probleme mit NTFS geben kann.

Als nächstes benötigen wir das eigentliche Programm. Die aktuelle Version findet man auf der Homepage: http://www.cygwin.com.

Installieren sollte man es dann gleich direkt auf den Stick. WICHTIG: Damit das Ganze funktioniert müssen wir Cygwin in das Root-Verzeichnis unter Cygwin installieren, also z.B.: E:/cygwin/. Der Laufwerksbuchstabe ist dabei egal. Wichtig ist dass wir kein Unterverzeichnis auswählen. Wer das machen möchte muss die Datei “x.bat” später entsprechend anpassen.

Jetzt ist Cygwin auf dem Stick installiert. Leider funktioniert Cygwin aber erstmal nur auf dem Rechner in dem der Stick bei der Installation steckte, also noch nicht wirklich portable.

Um Cygwin portabel zu machen muss man die folgende Profil-Datei herunterladen und den Begriff “username” – kommt zweimal vor – gegen seinen Usernamen ersetzen.

Als Beispiel: cygwin legt ein Verzeichnis unter cygwin an welches home heißt. Hierunter findet man sein Userverzeichnis welches auch dem Usernamen entspricht, also z.B. cygwin/home/tom. In diesem Beispiel müsste ich in der Profil-Datei den Begriff “username” gegen “tom” austauschen.

Danach kopieren wir die geänderte Datei in das etc-Verzeichnis unter dem cygwin Root-Ordner, also cygwin/etc.

Jetzt benötigt man noch zwei Dateien auf dem Stick, einmal x.bat zum starten unserer portablen Cygwin-Version und uninstall.bat zum entfernen von Cygwin. Diese Dateinen kopieren wir einfach in das Root-Verzeichnis des Sticks.

Um Cygwin zu starten klickt man einfach auf “x.bat” und nachdem man Cygwin beendet hat klickt man auf “uninstall.bat” um alle Registry-Einträge zu entfernen.

Noch Fragen?

 -> x.bat:

 
for /F %%A in (‘cd’) do set WD=%%A
cygwin\bin\mount -m | cygwin\bin\sed s/mount/”%WD%\/cygwin\\/bin\\/mount”/ > cygwin\tmp\mount.log
cygwin\bin\umount -c
cygwin\bin\umount -A
cygwin\bin\mount -bfu %WD%cygwin/ /
cygwin\bin\mount -bfu %WD%cygwin\bin /usr/bin
cygwin\bin\mount -bfu %WD%cygwin\lib /usr/lib

set path=%path%;%WD%cygwin\bin;%WD%cygwin\usr\X11R6\bin
start cygwin\bin\rxvt.exe -title “” -bg “#fafad2” -fg “#000040” -color10 green4 -color14 brown -fn “Lucida Console-14” -geometry 80×58+0+0 -sl 4000 -sr -tn rxvt -e /bin/bash –login -i
set DISPLAY=localhost:0.0
run cygwin\usr\X11R6\bin\XWin -multiwindow -emulate3buttons 200

uninstall.bat:

cygwin\bin\umount -c
cygwin\bin\umount -A
cygwin\bin\bash  cygwin\tmp\mount.log
cygwin\bin\rm    cygwin\tmp\mount.log

May 7 2008

erster buchstabe immer gross

tom hanks
tom cruise

awk ‘{ for ( i=1; i <= NF; i++){ sub(“.”, substr(toupper($i),1,1) , $i)  } print }’

Tom Hanks
Tom Cruise


May 5 2008

bash: zeilen vertauschen

~:/> cat tm1
123482357
hallo
123123341234
hallo2
234058934905834
hallo3
~:/> while read -r arg2; do read -r arg1;echo “$arg1” “$arg2”;done < tm1
hallo 123482357
hallo2 123123341234
hallo3 234058934905834


May 3 2008

bash: for each line in files do something

cat files|while read line; do wget $line; done