ios笔记
Category Archives: IOS
导入Three20
sudo python three20/src/scripts/ttmodule.py -p /Users/weston/LearnIphone/Three20_hello/Three20_hello.xcodeproj:Three20_hello Three20 -c Debug -c Release
objective-c enum 与 typedef
今天看到enum 和 typedef, 在两个小节中书中分别出现了2个例子,如下
enum direction {north, south, east, west};
typedef enum {north, south, east, west} direction;
不禁产生疑问,这两个有什么区别,仔细对照了一下,发现是这样的:
大同小异,
同: 都是申明了一个枚举类型。
异:在使用该枚举类型定义变量的时候,语法不一样,举例如下:
1 enum direction {north, south, east, west};
3 enum direction facing = north;
4
5 typedef enum {north, south, east, west} direction;
7 direction facing = north;
Objective-C 入门知识(转)
罗朝辉(http://www.cppblog.com/kesalin)
转载请注明出处
编程工作做久了,最初的新鲜感难免会消磨殆尽。幸好总是会有新的技术闪耀登场,重燃编辑人员的兴趣,Mac OS X 就饱含这样神奇的技术。
—Mark Dalrymple & Scott Knaster
1,从 HelloWorld 开始,
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
[...]
IOS开发资源推荐
以下列举自己常用的IOS开发资源(不断更新):
Our resources for other geeks, designers and engineers.(推荐)
iOS高效开发必备的10款Objective-C类库
iPhone SDK Examples
An iOS 4 iPhone Graphics Drawing Tutorial using Quartz 2D (Xcode 4)
iPhone, iOS, iPad SDK Development Tutorial and Programming Tips
Icons for mobile apps
RegexKitLite(正则表达式库)
ASIHttpRequest(HTTP Network库)
MBProgressHUD(进展指示符库)
JSON Framework(JSON支持)
斯坦福iphone开发教程, 附有PDF讲义
UITableViewController by example
如果您有更好的推荐, 也请追加, 非常感谢;-)
关于iPhone的启动流程
1. 首先从入口脚本:main.m 启动Application.
2. Application加载MainWindow.我们知道MainWindow的file’s Owner是UIApplication, 而且里面有delegate到MainWindow的delegate组件。
这样我们可以想象:
Application拥有了Delegate对象, 为什么要拥有? 因为它要用到Delegate对象的方法,如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}
等其他方法, 当然也包括Delegate对象的变量(window, viewController)。
或许图可以这样: Application->Delegate->{window, ViewController[Label, Button])}
从这里我可以想象到:Application,可以引用整个app的对象,包括button,label等。
3. 从图中可以可以看出, Hello world View Controller也被示例, 因为它是Hello_World_View_Controller.xib的File’s Owner, 所以Hello_World_View_Controller.xib里面的东西都要被实例化。
这个Controller就是具体去控制label, button等具体的东西,如显示啊。
*不一定是对的,请高人指点, 谢谢.
关于iPhone的outlet, delegate, window, file’s Owner的关系(本文逻辑有欠紧密,请不要随便转载,以免误人子弟)
*本文仅供参考,不是权威教程,欢迎讨论
一个iPhone程序 启动的时候估计有UIApplication, Delegate, Controller, 还有UI(xib文件), 但是他们是如何工作的呢?
为什么要用Outlet?
我的想法:
比如ROR程序中,要使用Views,views中要使用某个实例变量(当然这样比喻估计不是准确), 那在iPhone程序怎么实现呢? 那就用outlet, 比如window —> Window, 图中表示 Delegate 的outlet window 引用了 Window, 那么Delegate实例就可以使用Window实例的方法:
delegate.m 文件中有这样一个例子
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:switchViewController.view];
// Configure and show the window
[window makeKeyAndVisible];
}
假想:
UIApplication
UIApplication 是这个核心,它调度controller等的工作,我就把它想象成ROR的一个Application,那为什么UIApplication会有一个Outlets delegate==> Delegate呢? 这个意味着UIApplication实例可以调用Delegate实例, 但是delegate这个outlet在哪里定义呢? 这个是我比较迷惑的地方? 或许 UIApplication 类就有这样一个outlet.
Delegate
Delegate是一个Protocol,其实我可以想象成一个虚拟类(只定义方法,不实现), 在这里delegate.h 遵守了UIApplicationDelegate
@interface iPhoneRadioAppDelegate : NSObject {
UIWindow *window;
SwitchViewController *switchViewController;
}
这意味着delegate.m 可以实现UIApplicationDelegate的方法
delegate.m [...]