iOS 开发基础

打印 上一主题 下一主题

主题 836|帖子 836|积分 2508


  • 可以通过特定的API访问一些系统资源,如图片库、地址簿等
  • 在有网络链接时可以访问网络资源
  • 能量消耗
  • CPU负载
  • 发热,电池消耗过快
  • 算法优化
  • 用户使用习惯
  • 快速启动,短暂使用
  • 随时可能退出
  • 避免多余的“帮助”
  • 自动保存
Hello,There App

1.Create a new Xcode project:

2.Single View Application

3.Options for new project:

4.选择项目存放路径,然后生成了如下的项目结构:

5.然后编辑Main.storyboard(故事板?),选择ViewController

6.拖动Lable对象到Main.storyboard上面,双击可以编辑,改成我们需要的文字即可

运行效果:

2015-04-15




  • iOS模拟器不支持依赖于硬件的特性,如加速计和摄像头功能。也不支持将d应用程序下载到实际的iOS设备中,也不能在AppStore上分发应用程序。
  • 注册iOS开发者:
  • 99美元/年
  • 299美元/年
  • Cocoa Touch使用的是Objective-C 2.0,但该语言的一个关键特性在iOS中并不可用:垃圾回收。
2015-04-17




  • OC是在C语言的基础之上,增加了一层最小的面向对象语法。因为OC是基于C语言的,所以完全兼容C语言,甚至C++
  • OC没有包名(命名空间)的概念,开发人员给类名加上前缀,放置类名冲突
  • 为了防止与C语言、C++关键字冲突,OC关键字都以@开头。
  • 语法要点:
  • 基本数据类型:char,int,float,double,BOOL(YES\NO)
  • nil相当于Java中的null
  • self相当于Java的this
  • for循环快速遍历fot(xx in xx)
  • 基类 NSObject
  • 继承:单继承,用super关键字引用父类对象
  • 异常处理 @try @catch @finally
  • 注释: // 和 /……/
  • 日志输出:NSLog{@”Hello”}; NSLog{@”Age is %i”,23};
第一个OC程序:

Automatic Reference Counting(ARC)自动加释放内存代码


  • import相比include,防止重复包含。include的头文件(*.h)里需要添加:
#ifndef ___OC___Header_h
#define ___OC___Header_h
#endif
import不需要添加以上代码。
1.OS X>Application>Command Line Tool


2.Type:Founction


3.代码


4.运行效果




  • OC类包含两个文件:
  • .h 类的声明文件,用于声明变量,方法(函数)
  • .m 类的实现文件,用于实现.h中的方法
  • 类的声明使用关键字 ‘@interface @end
  • 类的实现使用关键字@implementation @end
  • 新建一个OC类:
1.右键Project,New File,然后iOS>Cocoa Touch>Objective-C class
2.输入类名,继承父类NSObject

3.生成代码ZMSClass.h和ZMSClass.m:

4.OC用冒号(:)表示继承,如:
/*


  • ZMSClass.h
*/
#import <Foundation/Foundation.h>
@interface ZMSClass : NSObject{
// 成员变量定义到大括号之内
int number;
//float time;
}
// 静态方法(+):用类名调用的方法;
// 动态方法(-):用对象调用的方法
// number的Get方法,不实现


  • (int)number;
// - (float)time;
// number的Set方法,不实现


  • (void)setNumberint)newNumber;
// - (void)setNumberint)newNumber setTimefloat)newTime;
@end


  • OC在.h中声明的所有方法都是公共的
  • OC中一个冒号对应接收一个参数
/*


  • ZMSClass.m
  • /
#import “ZMSClass.h”
@implementation ZMSClass


  • number{
NSLog(@“调用了number的get方法”);
return number;
}
// -time{
// NSLog(@“调用了time的get方法”);
// return time;
//}


  • (void)SetNumberint)number{
number = newNumber;
NSLog(@“调用了number的set方法”);
}
// - (void)setNumberint)newNumber setTimefloat)newTime{
// number = newNumber;
// time = newTime;
// }
@end


  • 创建一个ZMSClass对象:
  • 1.调用一个静态方法+(id)alloc来分配内存,用指针进行接收
  • 2.调用一个动态方法-(id)init进行初始化
/*


  • main.m
  • /
#import <Foundation/Foundation.h>
#import “ZMSClass.h”
int main(int argc, const *argv[])
{
@autorelasepool{
// 用指针存储对象的地址
ZMSClass *zms = [ZMSClass alloc];
zms = [zmsClss init];
// 以上两行可以简写为:
// ZMSClass *zms[[ZMSClass alloc] init]
[zmsClass setNumber:55];
int number = [zms number];
NSLog(@“Number is %i”,number);
[zms SetNumber:555 setTime:555.55];
NSLog(@“Number is %i and time is %f”,[zms number],[zms time]);
// 释放对象
[zms release];
}
return 0;
}
import导入*.h,系统的
   <>
  ,自写的用
   “”
  

  • OC中get方法建议和成员变量名一样
2015-04-20



  • 属性就是让类外可以访问成员变量
  • 类内使用成员变量,类外使用属性
// People.h
#import <Foundation/Foundation.h>
@interface People : NSObject
{
// 推荐成员变量加_,Xcode新版本不需要再在.h文件中写成员变量
NSString * _peopleName;
int _peopleAge;
int _peopleSex;
}
@property(nonatomic,strong)NSString *peopleName;
@end


  • 属性的使用:
// main.m
People *people = [[People alloc]init];
perople.peopleName = @“周木水”;
NSLog(@“peopleName - %@”, people.peopleName);
2015-06-22

IB(Interface Builder)



  • IB支持两种文件类型:使用.nib扩展名的旧格式和使用.xib的新格式。
  • 每个nib文件最初有同样的两个图标:File’s Owner和First Responder。他们是自动创建且不能删除的。
首先打开storyboard,添加一个根View,然后把其他组件放置到这个view之中查看效果。

View修改以下背景色,其他属性保持默认,不做修改:

Label

label类似Android的TextView。
拖拽一个Label到storyboard:
其文字内容可双击或输入修改。

效果图:

Slider

slider类似Android的SeekBar:

Switch



更多学习和讨论,欢迎加入我们!
有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
这里有2000+小伙伴,让你的学习不寂寞~·
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
20370)
效果图:

Slider

slider类似Android的SeekBar:

Switch


[外链图片转存中…(img-tZNFsUlc-1715366392076)]
更多学习和讨论,欢迎加入我们!
有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
这里有2000+小伙伴,让你的学习不寂寞~·
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表