导航:首页 > 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客户端与服务器相关的知识