導航:首頁 > IDC知識 > ios客戶端與伺服器

ios客戶端與伺服器

發布時間:2020-10-20 14:30:51

1、安卓和iOS是一個伺服器

當然不是了,安卓是谷歌的,IOS是蘋果的。
安卓:安卓開發是客戶端,伺服器端的資料庫和安卓無關的,你寫好介面,幹活的是伺服器端的介面程序。
比如你用PHP寫伺服器端,那麼首選是mysql,換言之你伺服器端是ASP(.net),那麼可以選擇access(小型)或者SQL Server(大型)
如果你用JSP……自己選……
對比幾個資料庫,其實沒有誰好一些的分別,關鍵是看你的用途,選擇適合的就好,語言也是一樣。

2、ios開發中與伺服器交互的問題

可以用比較基本NSURLConnection,也可以使用開源庫ASIHttpRequest,記得用post方法,把制定的參數傳過去,並且服務端有對應的方法做處理,你看看返回的對象是否正確,來確定是你出了問題還是伺服器端出了問題。網上搜搜就可以找到了。

3、IOS客戶端與.net伺服器建立socket通信

當然可以。不同程序自己的通信,只要是同一個協議下,都是可以的!看你使用什麼協議,然後按照協議的方式進行數據的包裝和發送!

4、ios app 和服務端怎麼交互,實現注冊登錄功能

沒做過iOS上app的登錄注冊,做過WP端的。當時的做法是,用戶注冊時,根據用戶名在輸入框里輸入的密碼轉為md5加密的格式得到結果,加上用戶輸入的用戶名,上傳到伺服器端,伺服器返回結果檢驗是否注冊成功。如果伺服器的結果表示注冊成功,則在本地保存用戶密碼的md5加密結果和用戶名文件,以後自動登錄時使用本地文件和伺服器溝通。

5、ios伺服器怎麼控制ui和功能

一、多控制器
一個iOS的app很少只由一個控制器組成,除非這個app極其簡單。當app中有多個控制器的時候,我們就需要對這些控制器進行管理
有多個view時,可以用一個大的view去管理1個或者多個小view,控制器也是如此,用1個控制器去管理其他多個控制器
比如,用一個控制器A去管理3個控制器B、C、D。控制器A被稱為控制器B、C、D的「父控制器」;控制器B、C、D的被稱為控制器A的「子控制器」
為了便於管理控制器,iOS提供了2個比較特殊的控制器
UINavigationController
UITabBarController
二、導航控制器
利用UINavigationController,可以輕松地管理多個控制器,輕松完成控制器之間的切換,典型例子就是系統自帶的「設置」應用
如圖:

三、UINavigationController的使用步驟
(1)初始化UINavigationController
(2)設置UIWindow的rootViewController為UINavigationController
(3)根據具體情況,通過push方法添加對應個數的子控制器

1 #import "YYAppDelegate.h"
2 #import "YYOneViewController.h"
3
4 @implementation YYAppDelegate
5
6 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
7 {
8 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
9 self.window.backgroundColor = [UIColor whiteColor];
10
11 //1.創建一個導航控制器
12 UINavigationController *nav=[[UINavigationController alloc]init];
13 //2.設置導航控制器為window的根視圖
14 self.window.rootViewController=nav;
15
16
17 //3.添加子控制器到導航控制器中
18 //創建一些控制器
19 UIViewController *c1=[[UIViewController alloc]init];
20 //設置c1這個控制器的視圖顏色
21 c1.view.backgroundColor=[UIColor redColor];
22
23 UIViewController *c2=[[UIViewController alloc]init];
24 c2.view.backgroundColor=[UIColor purpleColor];
25
26 UIViewController *c3=[[UIViewController alloc]init];
27 c3.view.backgroundColor=[UIColor brownColor];
28
29 //把這些控制器添加到導航控制器中
30 [nav pushViewController:c1 animated:YES];
31 [nav pushViewController:c2 animated:YES];
32 [nav pushViewController:c3 animated:YES];
33
34 [self.window makeKeyAndVisible];
35 return YES;
36 }

運行模擬器,可以看到一個簡陋的有著三個子控制器管理著頁面。
但呈現在我們眼前的只能有一個界面,我們沒有必要一次性創建三個控制器在這里等著。
要求:創建三個子控制器,每個子控制器view的界面上放一個按鈕,點擊可以跳轉到下一個界面。
實現(完成三個頁面間通過按鈕進行簡單的跳轉):
說明:這里把第一個子控制器的創建等代碼寫在了代理方法中。
YYAppDelegate.m文件代碼

1 //
2 // YYAppDelegate.m
3 // 01-導航控制器的使用1
4 //
5 // Created by apple on 14-6-4.
6 // Copyright (c) 2014年 itcase. All rights reserved.
7 //
8
9 #import "YYAppDelegate.h"
10 #import "YYOneViewController.h"
11
12 @implementation YYAppDelegate
13
14 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
15 {
16 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
17 self.window.backgroundColor = [UIColor whiteColor];
18
19 //1.創建一個導航控制器
20 UINavigationController *nav=[[UINavigationController alloc]init];
21 //2.設置導航控制器為window的根視圖
22 self.window.rootViewController=nav;
23
24
25 //3.添加子控制器到導航控制器中
26 YYOneViewController *one=[[YYOneViewController alloc]init];
27 [nav pushViewController:one animated:YES];
28
29 [self.window makeKeyAndVisible];
30 return YES;
31
32
33 // //創建一些控制器
34 // UIViewController *c1=[[UIViewController alloc]init];
35 // //設置c1這個控制器的視圖顏色
36 // c1.view.backgroundColor=[UIColor redColor];
37 //
38 // UIViewController *c2=[[UIViewController alloc]init];
39 // c2.view.backgroundColor=[UIColor purpleColor];
40 //
41 // UIViewController *c3=[[UIViewController alloc]init];
42 // c3.view.backgroundColor=[UIColor brownColor];
43 //
44 ////把這些控制器添加到導航控制器中
45 // [nav pushViewController:c1 animated:YES];
46 // [nav pushViewController:c2 animated:YES];
47 // [nav pushViewController:c3 animated:YES];
48 }

創建三個子控制項類及對應的xib文件
YYOneViewController.m文件

1 //
2 // YYOneViewController.m
3 // 01-導航控制器的使用1
4 //
5 // Created by apple on 14-6-4.
6 // Copyright (c) 2014年 itcase. All rights reserved.
7 //
8
9 #import "YYOneViewController.h"
10 #import "YYTwoViewController.h"
11
12 @interface YYOneViewController ()
13 /**
14 跳轉到第二個界面
15 */
16 - (IBAction)jump2two:(id)sender;
17
18 @end
19
20 @implementation YYOneViewController
21
22
23 - (IBAction)jump2two:(id)sender {
24 //1.創建第二個子控制器
25 YYTwoViewController *two=[[YYTwoViewController alloc]init];
26
27 //2.把子控制器添加到導航控制器中
28 //有什麼辦法能夠拿到導航控制器?
29 //只要當前控制器是導航控制器的子控制器,那麼就可以通過該屬性直接獲取到當前控制器所在的導航控制器
30 [self.navigationController pushViewController:two animated:YES];
31 }
32 @end

YYTwoViewController.m文件

1 //
2 // YYTwoViewController.m
3 // 01-導航控制器的使用1
4 //
5 // Created by apple on 14-6-4.
6 // Copyright (c) 2014年 itcase. All rights reserved.
7 //
8
9 #import "YYTwoViewController.h"
10 #import "YYThreeViewController.h"
11 @interface YYTwoViewController ()
12 - (IBAction)jump2Three:(id)sender;
13
14 @end
15
16 @implementation YYTwoViewController
17
18 //跳轉到第三個子控制器
19 - (IBAction)jump2Three:(id)sender {
20 //1.創建第三個子控制器
21 YYThreeViewController *three=[[YYThreeViewController alloc]init];
22 //2.將子控制器添加到導航控制器中
23 [self.navigationController pushViewController:three animated:YES];
24
25 }
26 @end

提示:只要當前控制器是導航控制器的子控制器,那麼就可以通過self.navigationController屬性直接獲取到當前控制器所在的導航控制器

6、在IOS網路編程,怎麼構建伺服器端和客戶端交互

http可以用asihttprequest這個庫,tcp可以用AsyncSocket。用http的協議的話,伺服器端好像要寫相關服務來接受http請求,tcp的話,伺服器則監聽發請求的對應埠。

7、wordpress安卓與ios客戶端均顯示抱歉,登錄失敗,錯誤404,與伺服器通信時發生了錯誤,

1、 在comments.php評論表單中添加自己想要的欄位,如:
<p>
<input type="text" name="tel" id="tel" size="22" tabindex="4" />
<label for="tel">電話</label>
</p>
tabindex 這個屬性按照從小到大排,為什麼要這樣?你可以自己試試….

2、如果評論表單是使用系統自帶的,那麼請用以下方法添加表單欄位,如果不是,請略過

add_filter('comment_form_default_fields','comment_form_add_ewai');
function comment_form_add_ewai($fields) {
$label1 = __( '國家/地區' );
$label2 = __( 'Skype賬號' );
$label3 = __( '電話' );
$label4 = __( '傳真' );
$label5 = __( '地址' );
$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false;
$value2 = isset($_POST['skype']) ? $_POST['skype'] : false;
$value3 = isset($_POST['tel']) ? $_POST['tel'] : false;
$value4 = isset($_POST['fax']) ? $_POST['fax'] : false;
$value5 = isset($_POST['address']) ? $_POST['address'] : false;
$fields['guojia'] =<<<HTML
<p>
<label for="guojia">{$label1}</label>
<input id="guojia" name="guojia" type="text" value="{$value1}" size="30" />
</p>
HTML;
return $fields;
}

3、 接收表單欄位並寫入資料庫
在主題目錄的 functions.php添加以下代碼
add_action('wp_insert_comment','wp_insert_tel',10,2);
function wp_insert_tel($comment_ID,$commmentdata) {
$tel = isset($_POST['tel']) ? $_POST['tel'] : false;
//_tel 是存儲在資料庫里的欄位名字,取出數據的就會用到
update_comment_meta($comment_ID,'_tel',$tel);
}
這兩步就可以將數據寫入資料庫了,不信你試試看
add_action()參數中的10和2分別表示該函數執行的優先順序是10(默認值,值越小優先順序越高),該函數接受2個參數。

4、在後台顯示額外欄位
前面兩步只是接收和寫入到資料庫,那麼要怎麼在後台評論列表中顯示呢?將以下代碼復制到主題目錄的functions.php 中:
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' );
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 );
function my_comments_columns( $columns ){
$columns[ '_tel' ] = __( '電話' ); //電話是代表列的名字
return $columns;
}
function output_my_comments_columns( $column_name, $comment_id ){
switch( $column_name ) {
case "_tel" :
echo get_comment_meta( $comment_id, '_tel', true );
break;
}
如果要在前台的留言列表中調用,就用以下代碼,_tel就是你在資料庫中存儲的欄位名字
<?php
$tel = get_comment_meta($comment->comment_ID,'_tel',true);
if( !empty($tel)){
echo "電話".$tel;
}
?>

5、 大功告成,看看後台的評論列表,是不是多了一列電話,那樣的話就沒錯了。

6、如果要移除某一個自帶的表單欄位,可以使用以下代碼
function tel_filtered($fields){
if(isset($fields['tel']))
unset($fields['tel']);
return $fields;
}
add_filter('comment_form_default_fields', 'tel')

8、iOS app 和服務端怎麼交互,實現注冊登錄功能

IOS開發終端和伺服器交互目前都是通過restful api的形式。
IOS終端列出需要的API介面,服務端實現這些介面,中間通過http協議通信來交互。
REST 指的是一組架構約束條件和原則。滿足這些約束條件和原則的應用程序或設計就是 RESTful。
Web 應用程序最重要的 REST 原則是,客戶端和伺服器之間的交互在請求之間是無狀態的。從客戶端到伺服器的每個請求都必須包含理解請求所必需的信息。如果伺服器在請求之間的任何時間點重啟,客戶端不會得到通知。此外,無狀態請求可以由任何可用伺服器回答,這十分適合雲計算之類的環境。客戶端可以緩存數據以改進性能。
在伺服器端,應用程序狀態和功能可以分為各種資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應用程序對象、資料庫記錄、演算法等等。每個資源都使用 URI (Universal Resource Identifier) 得到一個唯一的地址。所有資源都共享統一的介面,以便在客戶端和伺服器之間傳輸狀態。使用的是標準的 HTTP 方法,比如 GET、PUT、POST 和DELETE。Hypermedia 是應用程序狀態的引擎,資源表示通過超鏈接互聯。

9、android、ios客戶端和伺服器通信一般使用什麼方式,各有什麼優缺點?

1、從網路協議上來看,就http方式和socket方式。
2、http方式開發起來效率想對要高一內點,但是對於推送這種容來說,想對要難做點,因為http是短連接。socket這種方式開發要長,調試略微麻煩,但是做推送想對簡單,可以建立一個長連接。
3、Web Service服務其實也是基於HTTP協議(它基於SOAP協議,而SOAP又是基於HTTP協議)。
最大缺點我覺得是Web Service實在是太厚重了,特別對於移動端來說,WSDL是基於XML,XML已經夠厚重了,WSDL還有一些頭信息,更加厚重。
而且JSON + HTTP的方式,相對來說就非常輕量級了,JSON格式數據本生就是Javascript中的數據或者對象,所以在網路傳輸中具有非常明顯優勢,可以說本來就是網路傳輸用的,毫無違和感嘛:)
還有一個不能算缺點的缺點:目前移動端HTTP網路庫多的要死,Web Service我所知道就是ksoap2,而且非常的難用。。。

10、請專家幫我分析一下伺服器端和客戶端,(像.net,android,ios這些平台都能做哪方面的開發)

.Net目前主流開發語言是C#, C++和C#都可以做應用和服務端程序,做移動端開發和PC端開發,伺服器方面無關,安卓和蘋果手機端開發當然需要支持開發的開發環境了,安卓用Java,ios可以用object c。

C#簡單易入門,開發軟體應用比較快速,但是不能用於安卓和Ios開發

與ios客戶端與伺服器相關的知識