真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios開發(fā)目錄結(jié)構(gòu),ios開發(fā)目錄結(jié)構(gòu)分析

ios xcassets文件怎么創(chuàng)建

第一個iOS程序

創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元涼城做網(wǎng)站,已為上家服務(wù),為涼城各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

首先打開Xcode—Create a new Xcode project—Single View Application--輸入項目名稱,同時選擇使用Objective-C語言,設(shè)備選擇iPhone--接下來系統(tǒng)默認生成一個IOS項目模板。項目目錄結(jié)構(gòu)如下:

firstios

此時什么也不用做,直接運行看一下(注意這里已經(jīng)切換模擬器為iPhone5),沒錯我們看到了一個iOS應(yīng)用程序:

firstIOS-iPhone5

程序的運行過程

在幾乎所有的程序開發(fā)中程序一般都是從main函數(shù)開始運行的,那么IOS程序也不例外,在上圖中我們可以看到Xcode為我們生成了一個main.m文件:

//

// main.m

// FirstIOS

//

// Created by Kenshin Cui on 14-2-23.

// Copyright (c) 2014年 Kenshin Cui. All rights reserved.

//

#import UIKit/UIKit.h

#import "AppDelegate.h"

int main(int argc, char * argv[]) {

@autoreleasepool {

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}

}

這個默認的iOS程序就是從main函數(shù)開始執(zhí)行的,但是在main函數(shù)中我們其實只能看到一個方法,這個方法內(nèi)部是一個消息循環(huán)(相當(dāng)于一個死循環(huán)),因此運行到這個方法UIApplicationMain之后程序不會自動退出,而只有當(dāng)用戶手動關(guān)閉程序這個循環(huán)才結(jié)束。這個方法有四個參數(shù):

第一個參數(shù)和第二個參數(shù)其實就是main函數(shù)的參數(shù),分別代表:參數(shù)個數(shù)、參數(shù)內(nèi)容;

第三個參數(shù)代表UIApplication類(或子類)字符串,這個參數(shù)默認為nil則代表默認為UIApplication類,用戶可以自定義一個類繼承于這個類;如果為nil則等價于NSStringFromClass([UIApplication class]),大家可以自己試驗,效果完全一樣;UIApplication是單例模式,一個應(yīng)用程序只有一個UIApplication對象或子對象;

第四個參數(shù)是UIApplication的代理類字符串,默認生成的是AppDelegate類,這個類主要用于監(jiān)聽整個應(yīng)用程序生命周期的各個事件(其實類似于之前我們文章中提到的事件監(jiān)聽代理),當(dāng)UIApplication運行過程中引發(fā)了某個事件之后會調(diào)用代理中對應(yīng)的方法;

小技巧:

其實在Xcode中如果要看一些系統(tǒng)方法的解釋或者參數(shù)說明,可以直接鼠標(biāo)放到這個方法上,在Xcode右側(cè)面板中就會給出幫助提示,如下圖當(dāng)我們放到UIApplicationMain上之后:

quickHelp

也就是說當(dāng)執(zhí)行UIApplicationMain方法后這個方法會根據(jù)第三個參數(shù)創(chuàng)建對應(yīng)的UIApplication對象,這個對象會根據(jù)第四個參數(shù)AppDelegate創(chuàng)建并指定此對象為UIApplication的代理;同時UIApplication會開啟一個消息循環(huán)不斷監(jiān)聽?wèi)?yīng)用程序的各個活動,當(dāng)應(yīng)用程序生命周期發(fā)生改變UIApplication就會調(diào)用代理對應(yīng)的方法。

既然應(yīng)用程序UIApplication是通過代理和外部交互的,那么我們就有必要清楚AppDelegate的操作細節(jié),下面是UIApplication詳細的代碼:

AppDelegate.h

//

// AppDelegate.h

//

//

// Created by Kenshin Cui on 14-2-23.

// Copyright (c) 2014年 Kenshin Cui. All rights reserved.

//

#import UIKit/UIKit.h

@interface AppDelegate : UIResponder UIApplicationDelegate

@property (strong, nonatomic) UIWindow *window;

@end

AppDelegate.m

//

// AppDelegate.m

//

//

// Created by Kenshin Cui on 14-2-23.

// Copyright (c) 2014年 Kenshin Cui. All rights reserved.

//

#import "AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

return YES;

}

- (void)applicationWillResignActive:(UIApplication *)application

{

// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.

// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.

}

- (void)applicationDidEnterBackground:(UIApplication *)application

{

// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.

// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.

}

- (void)applicationWillEnterForeground:(UIApplication *)application

{

// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.

}

- (void)applicationDidBecomeActive:(UIApplication *)application

{

// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.

}

- (void)applicationWillTerminate:(UIApplication *)application

{

// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

}

@end

這個類中定義了應(yīng)用程序生命周期中各個事件的執(zhí)行方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;程序啟動之后執(zhí)行,只有在第一次程序啟動后才執(zhí)行,以后不再執(zhí)行;

- (void)applicationWillResignActive:(UIApplication *)application;程序?qū)⒁患せ顣r(獲得焦點)執(zhí)行,程序激活用戶才能操作;

- (void)applicationDidEnterBackground:(UIApplication *)application;程序進入后臺后執(zhí)行,注意進入后臺時會先失去焦點再進入后臺;

- (void)applicationWillEnterForeground:(UIApplication *)application;程序?qū)⒁M入前臺時執(zhí)行;

- (void)applicationDidBecomeActive:(UIApplication *)application;程序被激活(獲得焦點)后執(zhí)行,注意程序被激活時會先進入前臺再被激活;

- (void)applicationWillTerminate:(UIApplication *)application;程序在終止時執(zhí)行,包括正常終止或異常終止,例如說一個應(yīng)用程序在后太運行(例如音樂播放軟件、社交軟件等)占用太多內(nèi)存這時會意外終止調(diào)用此方法;

為了演示程序的生命周期,不妨在每個事件中都輸出一段內(nèi)容,簡單調(diào)整上面的代碼:

AppDelegate.m

//

// AppDelegate.m

// FirstIOS

//

// Created by Kenshin Cui on 14-2-23.

// Copyright (c) 2014年 Kenshin Cui. All rights reserved.

//

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

ipa目錄結(jié)構(gòu)及構(gòu)建過程

使用 file 命令查看ipa文件

其中 Payload 文件夾不可缺少,其中包含 .app 文件夾,簡單介紹一下 .app 中最主要的幾類文件:

新建一個 Xcode iOS App 項目,按 “command + B” 快捷鍵編譯項目,單擊查看編譯細節(jié),過程如下

下面是《iOS應(yīng)用逆向安全》中提供的自動打包腳本:

從上述腳本中可以看到整個過程大致如下:

如何用xcode5開發(fā)ios9

下載安裝好xcode5后,我們就可以開始ios開發(fā)之旅了。首先打開xcode。選擇新建一個xcode項目。

新建一個單窗體的程序。

只需要簡單的設(shè)置一下項目的名稱,開發(fā)程序使用的設(shè)備,可以看到有ipad iphone等。

創(chuàng)建好項目后,可以看到xcode給我們自動生成了目錄結(jié)構(gòu)和簡單的配置文件。

先不做什么修改,來運行一下這個項目程序。點擊xcode左上角的運行按鈕??梢钥吹浆F(xiàn)在只是一個空白的程序,編譯運行后自動會調(diào)出ios模擬器。現(xiàn)在在程序界面當(dāng)中加一個label標(biāo)簽來顯示helloworld。選擇項目目錄下面Main.stroyboard,鼠標(biāo)單擊后,可以看到屏幕中間出現(xiàn)了一個空白的界面,這就是運行程序時的主界面?,F(xiàn)在從xcode右側(cè)的工具欄中拖一個label標(biāo)簽到界面中央?,F(xiàn)在就可以修改label的文字,比如改稱hello world!在點擊運行,看看運行后的效果吧,

ios 怎么在一個工程文件實現(xiàn)多個app開發(fā)

用swift開發(fā)一個iOS社交app需要做的準(zhǔn)備: 1、開發(fā)環(huán)境搭建:Xcode 6.0 在官網(wǎng)下載Xcode 6.0 beta版,安裝。 Xcode 6.0 beta版可以和Xcode 5共存,它不是從AppStore下載而來的(本人使用官網(wǎng)鏈接用迅雷下載安裝),如果下載OSX 10.10的話,將會使用AppStore下載。 也就是說安裝Xcode 6.0并不需要 Mac OS X 10.10, 官網(wǎng)上說明要10.8以上。 2、playground Xcode 6.0的第一個選項是創(chuàng)建一個playground文件??梢跃帉懘a,并在右邊實時預(yù)覽。 3、選擇第二個選項,建立一個項目。和此前使用OC創(chuàng)建項目過程一樣。這里使用了單視圖應(yīng)用。 創(chuàng)建完成后,目錄結(jié)構(gòu)如下圖:

【iOS開發(fā)】打包成ipa的方法

blockquote

一、Xcode-archive(蘋果推薦方式) --- (推薦)

二、iTunes拖入

三、全自動編譯腳本 --- (推薦)

四、通過已有.app,編譯腳本自動生成ipa包

五、通過已有.app,手動壓縮改后綴方式

/blockquote

/br

blockquote

** 一、Xcode-archive(蘋果推薦方式)(推薦)**

/blockquote

blockquote

** 二、iTunes拖入**

/blockquote

blockquote

三、全自動編譯腳本

/blockquote

blockquote

四、通過已有.app,編譯腳本自動生成ipa包

/blockquote

5.將要轉(zhuǎn)化的.app文件放到distribute/文件夾下

這時的文件夾目錄結(jié)構(gòu)是這樣的:(注意,腳本中所有appName請先替換成你的真正app名稱)

6: 運行distribute.sh腳本

打開Terminal,cd到distribute文件夾下,把distribute.sh拉到terminal中執(zhí)行。如果提示permission denied,則用“chmod 777 distribute.sh”命令賦予權(quán)限后,再執(zhí)行一次distribute.sh。

7: 大約若干秒后,會在distribute/文件夾下生成appName/文件夾,里面的appName.ipa就是我們想要的包。

blockquote

** 五、通過已有.app,手動壓縮改后綴方式**

/blockquote

br /

參考資料:

——————————— 【 MadeBy 紀(jì)寶寶 】 ———————————


分享名稱:ios開發(fā)目錄結(jié)構(gòu),ios開發(fā)目錄結(jié)構(gòu)分析
本文來源:http://weahome.cn/article/dsdoddp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部