想开发iPhone应用,没有Mac Book也没有Mac Mini,怎么办?想尝试在Linux上开发iPhone吗,那就请接着往下看。1. 前提条件:在Ubuntu上编译好toolchain,参见http://www.linuxidc.com/Linux/2010-04/25542.htm。因为不能跑模拟器,需要一部iPhone手机来测试程序,iPhone3或iPhone4都可以(目前支持到iPhone 3.1SDK,程序可以在iPhone4上运行)2. 从UIApplication派生你的应用程序类:头文件MyScylla.h
- #import <CoreFoundation/CoreFoundation.h>
- #import <UIKit/UIKit.h>
- @class MyMainView;
- @interface MyScylla : UIApplication
- {
- UIWindow *window;
- MyMainView *mainView;
- }
- @property (nonatomic, retain) IBOutlet UIWindow *window;
- @property (nonatomic, retain) IBOutlet MyMainView *mainView;
- - (void)applicationDidFinishLaunching:(UIApplication *)application;
- - (void)dealloc;
- - (void) redirectConsoleLogToDocumentFolder;
- @end
m文件MyScylla.m
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
- #import <UIKit/UIAlert.h>
- #import "MyMainView.h"
- #import "MyScylla.h"
- int main(int argc, char* argv[])
- {
-
- NSAutoreleasePool *autoreleasePool = [
- [ NSAutoreleasePool alloc ] init
- ];
- int returnCode = UIApplicationMain(argc, argv, @"MyScylla", @"MyScylla");
- [ autoreleasePool release ];
- return returnCode;
- }
-
- @implementation MyScylla
- @synthesize window;
- @synthesize mainView;
- - (void)applicationDidFinishLaunching:(UIApplication *)application {
- NSLog(@"applicationDidFinishLaunching");
- [self redirectConsoleLogToDocumentFolder];
-
- // 可以用bounds方法会得到整个屏幕区域,包括状态栏
- CGRect screenBounds = [ [ UIScreen mainScreen ] bounds ];
-
- // 然后用initWithFrame创建UIWindow对象
- window = [ [ UIWindow alloc ] initWithFrame: screenBounds ];
- // 用applicationFrame方法返回可显示区域,不包括状态栏
- CGRect rect = [ [ UIScreen mainScreen ] applicationFrame ];
- rect.origin.x = rect.origin.y = 0.0f;
- mainView = [[MyMainView alloc]init];
- [window addSubview: mainView];
- [window makeKeyAndVisible];
- }
- - (void)dealloc {
- [window release];
- [mainView release];
- [super dealloc];
- }
- - (void) redirectConsoleLogToDocumentFolder {
-
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUSErDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"myscylla_log.txt"];
- freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
- }
- @end
Ubuntu 安装后不能进入bios解决Ubuntu上ldid编译和使用相关资讯 iPhone Ubuntu教程
- 华尔街日报:今年的新 iPhone 不会 (06月22日)
- iPhone 和中国仍为苹果带来强劲增 (07/22/2015 13:42:27)
- 大量 T-Mobile 使用者投诉 iPhone (06/25/2015 17:32:41)
| - 传新一代 iPhone 会将 Force Touch (08/12/2015 11:31:20)
- 传闻苹果已开始生产具压力感应屏幕 (06/28/2015 15:15:45)
- iPhone 使用者现在能在 Google 日 (06/25/2015 07:24:22)
|
本文评论 查看全部评论 (0)