Android转iOS之Objective-C程序设计

在工作期间,在和做iOS的同事之间聊天的时候,发现iOS开发也很有意思,所以想学学iOS开发,同事推荐了这本书,Objective-C 的,因为之前有做过Android的开发,所以学习这本书的话,只是熟悉一下Objective-C的语法习惯,使用习惯,看看是不是还有什么JAVA里面没有的,同时记了些笔记,因为有原来的Android基础,所以一些相同的没有记下,适合JAVA向Objective-C转,只是入门,要是想自习学的话还是好好看看这本书----Objective-C程序设计下载地址自己找。

1.键盘输入:

scanf("%i",&number);

2.系统自动实现get、set方法

在接口部分@property int numerator,denominator

在实现部分@synthesize numerator,denominator

这样就不必再自己写get、set方法了,而且运行较高效,也不用声明变量了;

3.具有多个参数的方法

-(void) setTo: (int) n over:(int) d;

-(int) set:(int) n:(int) d;//不带参数名的方法

4.将类对象作为参数传入

-(void) add: (Fraction *) f;//传入的是类对象的引用

5.声明类的引用

@class XYPoint;只是简单的说明XYPoint是一个类,在后面的引用中不会报错,但是要是使用到XYPoint的方法的时候,还是使用#import"";

6.id dataValue;

Complex *c = [[Complex alloc]init];

dataValue = c;

dataValue可以调用Complex的所有的方法,在运行时确定需要动态调用的方法的

[c isMemberOfClass: [Complex class]];//判断c是否是Complex的成员

[c isKindOfClass: [Complex class]];//判断c是否是Complex或其子类的成员

[c respondsToSelector: @selector(setReal:andImaginary:)]//c是否响应setReal:andImaginary:方法

[Complex instancesResponseToSelector:@selector(setReal:andImaginary:)]//Complex是否响应setReal:andImaginary:方法

[c performSelector @selector(setReal:andImaginary:)]//执行setReal:andImaginary:方法

7.定义一个全局变量而且外部变量

在所有的方法、类、函数定义之外声明全局变量

使用的时候使用extern + 变量即可使用或改变全局变量的值

定义一个全局但不是外部变量

使用static定义,只在本文件中定义了该变量之后的部分可使用,其他文件不可以

8.为数据类型指派另一个名称

typedef int Counter;

Counter j;

typedef Number *NumberObject;

NumberObject myValue;

Number *myValue;

9.分类

可以将类的定义模块化到相关方法的组或分类中。提供了扩展现有类的简便方式,不必访问类的源代码,也无需创建子类

创建分类的接口部分

@interface Fraction(MathOps)//分类的名字是MathOp,扩展了Fraction

创建分类的实现部分

@implementation Fraction(MathOps)

类的扩展-(未命名分类)@interface Fraction()//不指定名字

相对于命名分类来说,可以通过定义附加的实例变量来扩展类,在命名类中是不允许的,而且声明的方法必须在主实现区域实现,不得在分离的实现区域实现

10.协议

多个文件共享的方法列表,只有方法名,没有实现,在遵守该协议的类中实现。--类似接口

@protocol 名字

@optional //选择实现的方法

@required //需要实现的方法

遵守协议  类名:NSObject<协议名>

判断是否遵守某协议  [object conformsToProtocol:@prot(协议名)]

11.块

//块定义

^(void)

{

NSLog(@"programing is fun");

}

//块使用

void (^printMessage)(int)=

^(int n)

{

NSLogin(@"Program is fun %i",n);

};//块的定义以;结尾

printMessage(2);

13.xcode中访问Foundation文档 Help-Documentation

显示需要的某一个的时候,按option并单击鼠标

14.在NSArray数组中,只能放进去对象,不可用使用基本数据类型(int、float等),所以对于数字等应使用NSNumber,把数据放到NSNumber([NSNumber numberWithInteger:1])中,在放到NSArray中

15.可变字符串NSMutableString NSString的子类

16.不可变数组NSArray、可变数组NSMutableArray(指的是数组的长度可不可变)

17.词典

NSMutableDictionary----可变词典

NSDictionary----枚举词典(不可变,在初始化的时候dictionaryWithObjectsAndKeys把所有的键值都列出来)

创建的时候以nil结尾

18.文件

NSFileManager--对文件创建、读取数据、写入、重命名、删除、是否存在、属性、复制、两个文件内容是否相同

NSFileManager *fm = [NSFileManager defaultManager];//初始化

NSData用来设置缓冲区、将文件内容读入缓冲区或将缓冲区的内容写入文件

NSData *fileData;

fileData = [fm contentsAtPath:@"file1name"];//将file1name文件中的内容读到fileData中

[fm createFileAtPath:@"file2Name" contents:fileData attributes:nil]//把fileData中的内容写到file2name中

NSFileHandle--对文件打开、读写、查找指定位置、读取或写入特定数目的字节

NSURL

在网站读取任何类型的数据都可使用dataWithContentsOfURL(dictionaryWithContentsOfURL、arrayWithContentsOfURL)

NSBundle

创建应用的时候,系统存储相关数据到应用包中,访问这些资源使用NSBundle

[[NSBundle mainBundle]pathForResource:@"filename" ofType: @"txt"];

[[NSBundle mainBundle]pathsForResourcesOfType:@"jpg" inDirectory:@"birdImages"];

(/)表示根目录

(~)表示用户主目录~/filename

19.复制

遵守<NSCopying><NSMutableCopying>协议

直接“=”复制,会是两个变量指向同一个对象

使用

[array copy](浅复制)会复制出另一份,但是还是会指向相同的地址

20.归档

writeToFile:atomically://将数据归档到文件,可以使用数组,NSString,NSData等对象发送消息,

dictionaryWithContentsOfFile://读取数据到发送消息的对象

[NSKeyedArchiver archiveRootObject:toFile:]//归档内容到文件

[NSKeyedUnarchiver unarchiveObjectWithFile:]//在文件里读出内容

//上面存入的是Array则读出Array,存的是什么类型,读出是什么类型

自定义对象要遵守

<NSCoding>协议,实现encodeWithCoder,和initWithCoder方法

还有一些常用类的常用方法总结截图

移步  http://download.csdn.net/detail/damengzai/8415179  下载

时间: 2024-10-25 22:01:28

Android转iOS之Objective-C程序设计的相关文章

Android &amp;Swift iOS开发:语言与框架对比

转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 从Android到Swift iOS开发:语言与框架对比 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还

总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等

可视化界面的软件,是21世纪最主流的应用类型了,黑屏控制台的不适合普通用户. 2004年左右的时候,作为普通网民,接触的自然是可视化,准确是Windows那一套. 那个时候,Microsoft Windows 98,红警,QQ是3个印象深刻的软件. 大学之后,入了行,先后学习了Windows程序设计(C语言API开发).MFC.Java Swing,Html Web,Android和iOS. 总的来说,现在Html web和Java Swing要熟悉一些,Android和iOS的界面在深入学习中

《大话移动APP测试:Android与iOS应用测试指南》

<大话移动app测试:android与ios应用测试指南> 基本信息 作者: 陈晔 出版社:清华大学出版社 ISBN:9787302368793 上架时间:2014-7-7 出版日期:2014 年8月 开本:16开 页码:292 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > Android 计算机 > 软件与程序设计 > 移动开发 > 其他移动开发技术 更多关于>>> <大话移动app测试:android与io

开源一个C#写的Android和IOS都能跑的 打击感强的RPG玩玩。

不废话直接上图 关于下载和打开 没错,我强调过很多次的,Unity3D开发的.  如果你还不懂Unity3D 的基本开发套路,如何打开Unity如何安装Unity这些问题.我建议你先不要索要源代码. 下载后,直接打开这个工程......  然后打开根目录下载ManTuLanSi这个Scence  ,如果你是用PC,就可以按  ASDW开前  来控制前后左右.痛快的打一下怪吧. 源代码齐全吗?? 因为美术资源是别人的,所以实际源代码会有部分美术资源替换了.不过,代码还是这份代码.完全没变. 能商用

张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )

所谓 UWP 样式的汉堡菜单,我曾在"张高兴的 UWP 开发笔记:汉堡菜单进阶"里说过,也就是使用 Segoe MDL2 Assets 字体作为左侧 Icon,并且左侧使用填充颜色的矩形用来表示 ListView 的选中.如下图 但怎样通过 Xamarin.Forms ,将这一样式的汉堡菜单带入到 Android 与 iOS 中呢? 一.大纲-细节模式简介 讲代码前首先来说说这种导航模式,官方称"大纲-细节模式"(MasterDetail).左侧的汉堡菜单称为&qu

Unity在Android和iOS中如何调用Native API

本文主要是对unity中如何在Android和iOS中调用Native API进行介绍. 首先unity支持在C#中调用C++ dll,这样可以在Android和iOS中提供C++接口在unity中调用.利用这一特性,可以扩展unity的功能.例如集成和调用第三方库.同时为了满足对unity接口的一致性,可以考虑在android和iOS上提供相同的接口供C#调用. 这里列举以下两个例子. 1. 1. 以弹出一个覆盖部分屏幕的webview为例来说明如何从C#调用Native接口. 2. 2. 简

android和ios,音频互通方案

好久不更新博客上,从年前从公司辞职,这半年以来,一直靠做一些外包app养活自己!也算是达成了自己年前制定的目标!可是也想着总不能一直做外包吧,所以决定做一些自己觉得有意思的app,挂到应用商店上和app store上,只要有1-2k或者1-2w的活跃用户,自己也就满足了! 最近寻思做一个语音feed系统,难点呢,其实也就是在android和ios音频互通上!忙了一个星期解决了这个问题,所以就和大家分享下! 先说下整体的设计方案: 服务器:php 数据库:redis 协议:http + json

Cocos2d-x 3.x 选择并编辑头像功能(Android、IOS双平台实现)

大连游戏行业不是太发达,最后选择在一家应用外包公司工作,在工作和业余学习过程中积累了一点微不住道的经验,希望分享给热爱游戏的小伙伴们. 在应用开发过程中会常常有用户上传头像的功能,在网上找了N多资料发现没有人具体介绍过该用cocos2d-x实现.这篇文章就来介绍一下如何在Android和IOS平台上实现该功能. 欢迎热爱游戏开发的小伙伴骚扰: 电邮:[email protected] 企鹅:601322806 先传一张完成后的图片一饱眼福: 直接上代码: 头文件 ImagePicker.h /*

GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。

1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式. 对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局.能够让开发者轻松开发

Android仿IOS回弹效果 ScrollView回弹 总结

Android仿IOS回弹效果  ScrollView回弹 总结 应项目中的需求  需要仿IOS 下拉回弹的效果 , 我在网上搜了很多 大多数都是拿scrollview 改吧改吧 试了一些  发现总有点小问题 下面的代码是我对大家发布的做了点小修改   觉得没太大问题 package com.example.myscrollview; import android.content.Context; import android.graphics.Rect; import android.util