net程序员的iPhone开发-MonoTouch

net程序员的iPhone开发-MonoTouch

iPhone软件的Native开发除了使用Apple推荐的Objective-C  Cocoa之外,也有其他的一些工具和SDK提供

基于WEB的形式的一些框架在下面这个文章介绍过

各种SmartPhone上的跨平台开源框架的总结

http://www.cnblogs.com/2018/archive/2010/12/28/1918814.html

 

对于.net人员来说,使用C#语言也可以进行开发,这就是MonoTouch

monotouch

2009年Novell开始的项目

通过MonoTouch,使用C#语言实现可以在iPhone上发布和销售的软件

MonoTouch免费版本只能在模拟器中开发调试和测试,在iPhone设备和app store上必须购买授权。http://monotouch.net/DownloadTrial

开发环境准备

 1. Make sure you have your Intel Mac running at least version 10.5.7

  2. Download and install the Mono framework: www.go-mono.com/mono-downloads/download.html.

  3. Download and install MonoTouch: http://monotouch.net/

  4. Download and install MonoDevelop: http://monodevelop.com/Download

  5. Download and install the iPhone SDK: www.apple.com/downloads/macosx/development_tools/iphonesdk.html.

安装好以上的工具后就可以使用MonoDevelop进行开发了

MonoTouch 组件和类库

MonoTouch is made up of the following four components:

  • The  Monotouch.dll is a C# assembly that provides a binding API into the iPhone’s native APIs.
  • A command-line tool that compiles C# and Common Intermediate Language (CIL) code. This compiled code can then be run in the simulator or an actual iPhone.
  • An add-in to MonoDevelop that allows for iPhone development and for Interface Builder to create graphical applications.
  • A commercial license of the Mono runtime, which allows for the static linking of the Mono runtime with the code developed.

最常用的命名空间

  • MonoTouch.ObjCRuntime: This namespace provides the interop/bridge between the .NET/C# world and the Objective-C world of the iPhone.
  • MonoTouch.Foundation: This namespace provides support for the data types necessary to communicate with the Objective-C world of the iPhone. Most types are directly mapped. For example, the NSObject Objective-C base class is mapped to the MonoTouch.Foundation .NSObject class in C#. Some classes are not directly mapped and are instead mapped to their native .NET types. For example, NSString maps to the basic string type and NSArray maps to a strongly typed array.
  • MonoTouch.UIKit: This namespace provides a direct mapping between the UI components within Cocoa Touch. The mapping is done by providing .NET classes for each UI component, and this is the namespace that developers will likely spend most of their time working with. For .NET developers, Cocoa Touch is an abstraction layer or API for building programs that run in the iPhone. Cocoa Touch is based on the Cocoa API used in building programs that run on the Mac OS X operating system. Cocoa Touch can be thought of as Cocoa tuned for the touch-based iPhone operating system.
  • OpenTK: This namespace is a modified version of the OpenTK API. OpenTK is an objectoriented binding for OpenGL, which stands for the Open Graphics Library. OpenGL is an API for using three-dimensional graphics. OpenTK is a library for performing OpenGL, OpenAL, and OpenCL. It is written in C# and runs on Windows, Mac OS X, and Linux. The OpenTK implementation on the iPhone has been updated to use CoreGraphics and to only expose the functionality available on the iPhone.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP防止SQL注入

防止SQL注入http://0.0.0.0/bzhs/login.asp?logTypeedit;WAITFOR DELAY 0:0:5 --logType Replace(Replace(Replace(Replace(logType,"-",""),"",""),"&",""),";","")fcdm Replace(Rep…

protobuf java 生成_protobuf代码生成

windows :1,两个文件:proto.exe, protobuf-java-2.4.1.jar2,建立一个工程TestPb,在下面建立一个proto文件件,用来存放【。proto】文件3,将proto,exe放在工程下,4,建立一个msg.proto文件:option …

bigquery_在BigQuery中链接多个SQL查询

bigqueryBigquery is a fantastic tool! It lets you do really powerful analytics works all using SQL like syntax.Bigquery是一个很棒的工具! 它使您能够使用像语法一样SQL来进行真正强大的分析工作。 But it lacks chaining the SQL queries. We cannot run …

允许指定IP访问远程桌面

允许指定IP访问远程桌面 电脑软件 2010-01-23 02:33:40 阅读595 评论0 字号:大 中 小 订阅 一、新建IP安全策略 WINR打开运行对话框,输入gpedit.msc进入组策略编辑器。 依次打开“本地计算机”策略--计算机配置--Windows设置--安全设置--IP安…

大理石在哪儿 (Where is the Marble?,UVa 10474)

题目描述&#xff1a;算法竞赛入门经典例题5-1 1 #include <iostream>2 #include <algorithm>3 using namespace std;4 int maxn 10000 ;5 int main()6 {7 int n,q,a[maxn] ,k0;8 while(scanf("%d%d",&n,&q)2 && n &&q…

Volley 源码解析之网络请求

Volley源码分析三部曲Volley 源码解析之网络请求Volley 源码解析之图片请求Volley 源码解析之缓存机制 Volley 是 Google 推出的一款网络通信框架&#xff0c;非常适合数据量小、通信频繁的网络请求&#xff0c;支持并发、缓存和容易扩展、调试等&#xff1b;不过不太适合下载大…

为什么修改了ie级别里的activex控件为启用后,还是无法下载,显示还是ie级别设置太高?

如果下载插件时下载不了&#xff0c;这样设置&#xff0c;打开IE选工具/Internet 选项/安全/自定义级别/设置中的ActiveX控件自动提示“禁用”。 对标记为可安全执行脚本ActiveX控件执行脚本“启用” 对没有标记为安全的ActiveX初始化和脚本运行“启用”&#xff08;下载插件后…

mysql 迁移到tidb_通过从MySQL迁移到TiDB来水平扩展Hive Metastore数据库

mysql 迁移到tidbIndustry: Knowledge Sharing行业&#xff1a;知识共享 Author: Mengyu Hu (Platform Engineer at Zhihu)作者&#xff1a;胡梦瑜(Zhhu的平台工程师) Zhihu which means “Do you know?” in classical Chinese, is the Quora of China: a question-and-ans…

两个日期相差月份 java_Java获取两个指定日期之间的所有月份

String y1 "2016-02";//开始时间String y2 "2019-12";//结束时间try{Date startDate new SimpleDateFormat("yyyy-MM").parse(y1);Date endDate new SimpleDateFormat("yyyy-MM").parse(y2);Calendar calendarCalendar.getInstance(…

js前端日期格式化处理

js前端日期格式化处理 1.项目中时间返回值&#xff0c;很过时候为毫秒值&#xff0c;我们需要转换成 能够看懂的时间的格式&#xff1b; 例如&#xff1a; ​ yyyy-MM-dd HH:mm:ss 2.处理方法&#xff08;处理方法有多种&#xff0c;可以传值到前端处理&#xff0c;也可以后台可…

如何用sysbench做好IO性能测试

sysbench 是一个非常经典的综合性能测试工具&#xff0c;通常都用它来做数据库的性能压测&#xff0c;但也可以用来做CPU&#xff0c;IO的性能测试。而对于IO测试&#xff0c;不是很推荐sysbench&#xff0c;倒不是说它有错误&#xff0c;工具本身没有任何问题&#xff0c;它的…

XCode、Objective-C、Cocoa 说的是几样东西

大部分有一点其他平台开发基础的初学者看到XCode&#xff0c;第一感想是磨拳擦掌&#xff0c;看到 Interface Builder之后&#xff0c;第一感想是跃跃欲试&#xff0c;而看到Objective-C的语法&#xff0c;第一感想就变成就望而却步了。好吧&#xff0c;我是在说我自己。 如果…

java http2_探索HTTP/2: HTTP 2协议简述(原)

探索HTTP/2: HTTP/2协议简述HTTP/2的协议包含着两个RFC&#xff1a;Hypertext Transfer Protocol Version 2 (RFC7540)&#xff0c;即HTTP/2&#xff1b;HPACK: Header Compression for HTTP/2 (RFC7541)&#xff0c;即HPACK。RFC7540描述了HTTP/2的语义&#xff0c;RFC7541则描…

错误处理

错误处理&#xff1a; 许多系统调用和函数在失败后&#xff0c;会在失败时设置外部变量errno的值来指明失败原因。许多不同的函数库都把这个变量作为报告错误的标准方法。程序必须在函数报告出错后立刻检查errno变量&#xff0c;因为它可能被下一个函数调用所覆盖&#xff…

Android类库介绍

Android类库介绍 GPhone开发包Android SDK含了很多丰富的类库&#xff1a; android.util 涉及系统底层的辅助类库 android.os 提供了系统服务、消息传输、IPC管道 android.graphics GPhone图形库&#xff0c;包含了文本显示、输入输出、文字样式 android.database 包含底层的AP…

递归函数基例和链条_链条和叉子

递归函数基例和链条因果推论 (Causal Inference) This is the fifth post on the series we work our way through “Causal Inference In Statistics” a nice Primer co-authored by Judea Pearl himself.这是本系列的第五篇文章&#xff0c;我们通过“因果统计推断”一书进行…

前端技能拾遗

本文主要是对自己前端知识遗漏点的总结和归纳&#xff0c;希望对大家有用&#xff0c;会持续更新的~ 解释语言和编译型语言 解释型语言与编译型语言的区别翻译时间的不同。 编译型语言在程序执行之前&#xff0c;有一个单独的编译过程&#xff0c;将程序翻译成机器语言&#xf…

java lock 信号_java各种锁(ReentrantLock,Semaphore,CountDownLatch)的实现原理

先放结论&#xff1a;主要是实现AbstractQueuedSynchronizer中进入和退出函数&#xff0c;控制不同的进入和退出条件&#xff0c;实现适用于各种场景下的锁。JAVA中对于线程的同步提供了多种锁机制&#xff0c;比较著名的有可重入锁ReentrantLock&#xff0c;信号量机制Semapho…

Intent.ACTION_MAIN

1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始。比较常用。 Input:nothing Output:nothing 例如&#xff1a; 1 <activity android:name".Main"android:label"string/app_name">2 <intent-filter…

足球预测_预测足球热

足球预测By Aditya Pethe通过阿蒂亚皮特(Aditya Pethe) From September to January every year, football takes over America. Games dominate TV Sunday and Monday nights, and my brother tears his hair out each week over his consistently underperforming fantasy te…