随笔分类 -  IPhone

摘要:目标: 分享文字的时候加入图片新浪微博: 图片要求multipart/form-data格式上传。认证字符串必须放在http header的 Authorization头里。pic不要加入base string。 需要特别注意的是,新浪的服务器对于multipart/form-data的格式规范要求很严,尤其是结束的分割符。腾讯微博:比新浪方便多了,认证字符串可以放在post里面。其他的和新浪一样。开心网: 和腾讯的要求一样人人网: 不能直接和文本一起上传,只能分享图片的URL。可以先把图片上传到相册。豆瓣说:自家的app是有图片上传的功能的,可在文档里面没有找到。网易,搜狐:没人用... 阅读全文
posted @ 2011-08-24 18:56 hjtc 阅读(531) 评论(0) 推荐(1) 编辑
摘要:目标:用户认证,文字分享。API设计的比豆瓣还糟糕,也懒的骂,注意几点: 1. 只支持OAuth2.0。 2. 苦逼的文档结构,这里列出几个有用的:http://wiki.dev.renren.com/wiki/Test_Advanced_APIhttp://wiki.dev.renren.com/wiki/%E4%BD%93%E9%AA%8C%E4%BA%BA%E4%BA%BAOAuth2.0%E9%AA%8C%E8%AF%81%E6%8E%88%E6%9D%83%E5%9F%BA%E6%9C%AC%E6%B5%81%E7%A8%8Bhttp://wiki.dev.renren.com/wi 阅读全文
posted @ 2011-08-22 13:07 hjtc 阅读(576) 评论(1) 推荐(1) 编辑
摘要:目标:用户认证,文字分享。注意两点: 1. 开心网同时提供OAuth1.0 和 OAuth 2.0 两种规范。强烈建议使用OAuth2.0,搞不好以后就把OAuth1.0给停了。 2. 如果使用OAuth1.0 (我用的是这个,懒的改了)。注意纠结的scope参数,在第一不获取access token的过程中,除了标准的认证参数外,你通常需要再加入参数。像我使用的是scope=basic create_records。 阅读全文
posted @ 2011-08-22 12:10 hjtc 阅读(369) 评论(0) 推荐(0) 编辑
摘要:目标:用户认证,文字分享。豆瓣是这次我写的同步sdk的痛苦之源。不按照标准OAuth的标准,随心所欲。有时候真想掐死那个写API接口的鸟人。豆瓣API七大糟糕之处: 1. 认证模式只支持header模式,你必须把认证字符串独立出来放在Http头的Authorization field中,否则他是不会鸟你的,只会返回no auth access。 2. pin是不需要的,第二步用户认证后,不会返回pin,第三步获取access token也是不需要的。 3. 稳定性极差,如果认证不了,不一定是你的问题。 4. post时使用的不是普通的query string格式,这鸟人用的是一种entry格式 阅读全文
posted @ 2011-08-22 12:02 hjtc 阅读(829) 评论(0) 推荐(1) 编辑
摘要:目标:用户认证,文字分享。没什么可以说的,与新浪,腾讯基本一样。注意两点: 一是用户认证的网址加入type参数,像这样: @"http://api.t.163.com/oauth/authorize?client_type=mobile&oauth_token=" 二是pin码返回的是9位数据,当然用callback应该也是可以的,我没试过。 阅读全文
posted @ 2011-08-22 11:41 hjtc 阅读(422) 评论(0) 推荐(0) 编辑
摘要:目标:用户认证,文字分享。腾讯的文档写也不错。API认证规范方面,只能使用OAuth1.0。OAuth1.0认证实现的细节上需要注意三点:1. 官方提供的sdk还是不错的,比新浪上挂着的第三方sdk靠谱。2. pin码获取有两种方法: 一种是按照文档的说明,将oauth_callback=null。注意这里的null就是指字符串”null”, 这与新浪微博是不同的,新浪微博可以不传callback参数,而腾讯这个参数是必须的。然后用解析html的方法获取pin即可。 第二种是将oauth_callback=www.somewhere.com。注意这里的网址必须是某个可以访问的地址。在第二步用户 阅读全文
posted @ 2011-08-22 11:29 hjtc 阅读(741) 评论(0) 推荐(0) 编辑
摘要:目标:用户认证,文字分享。新浪的文档写的不错,清楚易于查找。API认证规范方面,Basic认证已经取消,OAthu2.0内测中,暂未开放,只能使用OAuth1.0。对于OAuth1.0的实现,新浪完全按照标准规范来,没有像开心网那种苦逼的自定义参数。OAuth1.0认证实现的细节上需要注意三点:1. 谨慎使用官网上挂着的第三方sdk,尤其是不需要实现完整微博客户端的情况下。2. 在显示pin的web页面上,会出现6位数字,可以直接解析html获取Pin。保险期间,获取之后可以直接走第三步,拿access token,如果失败,就请用户手动输入。防止新浪以后变更pin格式,比如改成图片神马的。3 阅读全文
posted @ 2011-08-22 11:07 hjtc 阅读(1029) 评论(0) 推荐(0) 编辑
摘要:前置知识:http协议自带的Last-Modified和ETag,详细的网上搜索下就行了。简单来说就是,服务器在返回资源时包含一个ID(时间或是某种token),客户端缓存该ID,下一次再请求同一资源时,包含这个ID,服务器根据此ID来判断资源是否改变,从而返回不同的结果(200或是304)。Three20实现的默认缓存方案是:TTURLRequestCachePolicyDefault= (TTURLRequestCachePolicyMemory | TTURLRequestCachePolicyDisk| TTURLRequestCachePolicyNetwork),TTURLRequ 阅读全文
posted @ 2011-05-20 17:32 hjtc 阅读(1132) 评论(0) 推荐(0) 编辑
摘要:新建一个Mac OS的项目,按照下面的步骤,加入ffmpeg。静态库编译参考: 移值FFMPEG到iPhone或Mac OS/X链接静态库在xcode建立一个libs目录,加入生成的静态库(.a文件)。一般包含avcodec, avformat, avutil, swscale这四个库。加入头文件在工程配置中,build选项,Header Search Paths,中加入源文件的根目录(记得选择r... 阅读全文
posted @ 2011-02-15 09:49 hjtc 阅读(2685) 评论(2) 推荐(1) 编辑
摘要:为了释放对象拥有的实例变量,常用的方法是在dealloc中调用release,比如下面的代码:[代码]如果这里的name是属性变量呢?在IPhone开发基础教程这本书里,你会经常在看到这样的代码:[代码]这里并没有直接访问变量本身,而是使用了编译器自动生成的setter。那问题就来了,咋的一赋值成nil,就能release了?想想看一般的setter的是怎么写的,看下面:[代码]ok,很方便的写法。但是不是说就没有问题呢?请参考下面的讨论,在KVC机制中是会有问题的。http://stackoverflow.com/questions/192721/why-shouldnt-i-use-obj 阅读全文
posted @ 2011-01-27 11:28 hjtc 阅读(735) 评论(0) 推荐(0) 编辑
摘要:首先推荐非常棒的文章:http://www.duckrowing.com/2010/05/21/using-the-singleton-pattern-in-objective-c/下面是实现代码:[代码]简单解释下,详细的请看上面的那篇文章。 阅读全文
posted @ 2011-01-26 19:05 hjtc 阅读(1708) 评论(3) 推荐(0) 编辑
摘要:UIKit通过封装Core Animation实现了一些常用的动画效果,用起来非常方便。使用的方法是通过UIView来声明一个动画块,在这个块中做的任何属性变化,都会呈现动画效果。 具体的语法上有两种写法,这里讲的是老式的写法,IOS4.0后的新写法请参考文档,基本的思路是一样的。具体可以看这个:http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html 先说明几个基本的概念,方便理解后面的函数。 阅读全文
posted @ 2011-01-26 12:30 hjtc 阅读(6701) 评论(1) 推荐(1) 编辑
摘要:天杀的GUI,所有程序要都是命令行的多好~~ :)根据官方的一个hello world例子,折腾了好几个小时,才弄明白。例子是不错的,写的非常阳春,没有多余的废话,初学者看看把:http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhone101/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40007514-CH1-SW1几个操作的小技巧,给像我这样的菜鸟,在IB里按住control 点控件可以打开事件列表,commad + 阅读全文
posted @ 2011-01-19 15:27 hjtc 阅读(536) 评论(0) 推荐(0) 编辑
摘要:痛恨MFC很多年了,有碰上这种点两下鼠标程序就能跑的东西,心里那个烦啊~~~:-(没辙谁让对于移动开发,咱还是新兵呢,这拖拖控件,点点鼠标的事,只好再上了。这里以windows-base的程序为例子来说明一个IOS程序的初期化过程:程序入口:首先,程序的入口函数还是main,看other resource里的main.m。这里它默认调用UIApplicationMain这个系统函数。解析plist文件和mainWindow.nib:这是程序的配置文件,包括程序在IPhone里显示的名称,和main nib文件的名称。通过UIApplicationMain这个入口,框架会解析这个plist文件, 阅读全文
posted @ 2011-01-19 13:47 hjtc 阅读(850) 评论(0) 推荐(0) 编辑
摘要:如何使用?这里只是记录下如何使用的语法规则,至于类别的优缺点,使用场景,等等细节,sorry。。不知道 yet :)基本上你只需要声明另外一个类,并且指定你需要扩展的类,简单的,看例子:代码需要注意的是,当你在定义一个category时,不能指定新的实例变量,即使时空的括号,也会导致编译不过,道理也很简单,category只是改变类中函数列表,是不会去改变实例变量的,也就无法增加新的变量。 阅读全文
posted @ 2011-01-19 09:30 hjtc 阅读(2093) 评论(0) 推荐(0) 编辑
摘要:什么是property?是一种代码生成机制,能够生成不同类型的getter/setter函数,特别是如果你想要用点(.)操作符号来存取变量的话,你就能必须使用property。如何使用?用法是固定的,注意下property后面小括号了跟的参数列表,nonatomic代表非原子性,既不支持多线程的同步,mac上可以根据具体情况考虑,IPhone上就加上把,retain代表对setter的对象加上一个retain操作,同时也会release原有的object,copy顾名思义就是copy setter中参数的对象。看下面的例子:代码额外的内容默认的propety变量,总是可读写的,如果需要只读控制 阅读全文
posted @ 2011-01-18 19:34 hjtc 阅读(2649) 评论(0) 推荐(0) 编辑
摘要:init的标准写法:[代码]object-c里这个初期化方法确实是很奇怪,self居然会在alloc 已经分配了内存之后发生变化,感觉有点无厘头:( 。object-c基础这本书里的解释是,父亲函数可以根据不同的情况,重新产生一个对象。至于子类的变量能否正确反应呢?原本生成的实例如何消灭?则还是一头雾水。基本的事实是:[super init] 有可能返回不同的对象,也有可能返回nil。只能先记住了。同上面的问题,如果使用这样的代码,是否正确呢?Car* car = [Car alloc];[car init];如果按照正常的思维,因该是正确的,alloc负责分配内存,init只是初期化值而已, 阅读全文
posted @ 2011-01-18 16:38 hjtc 阅读(954) 评论(0) 推荐(0) 编辑
摘要:粗略的记录下object-c的内存管理机制,有迷糊的地方也mark下,希望之后的学习能解决把。手动释放和引用计数: 熟悉windows开发的童鞋,对于引用计数应该是不会陌生的。任何“对象”(可以是类的实例,也可以是个资源)在内部会维护一个变量,称为计数器,对象初期化时,计数器初期化为1,任何对该对象的引用会使得计数器加一,同样的解引用会使得计数器减一,当计数器的值为0时,该对象销毁。引用计数使得一个资源(对象)可以在多处被使用,使用的场景类只需要关心自己什么时候需要该资源,什么时候不需要。 在object-c中使用管理对象的生存期,可以使用下面的这些函数: retain - 计数器加一 re 阅读全文
posted @ 2011-01-16 12:53 hjtc 阅读(1819) 评论(0) 推荐(1) 编辑
摘要:在object-c基础教程这本书里老是可以看见类似下面这种代码,我这小菜鸟就纳闷了,啥区别啊,看上去都一样么。网上找了找,找到一些说法,这里先摘出来。 someClass* object = [someClass new];or someClass* object = [[someClass alloc] init];其实是一样的,某位老兄是这样说的,new在内部调用的alloc和init,Actually "new" is not a keyword in Objective-C, but NSObject implements a class method "new" which simp 阅读全文
posted @ 2011-01-15 16:53 hjtc 阅读(4085) 评论(1) 推荐(0) 编辑
摘要:初学咋练难免惹笑话,有错误处拍砖哈 :-)object-c中并没有提供类静态变量,只能以文件作用域的static变量代替,然后由类的成员函数来操作,这样设计的目的,还没想明白,先mark下以后再说把。下面提供个例子:代码 阅读全文
posted @ 2011-01-15 14:11 hjtc 阅读(2320) 评论(4) 推荐(0) 编辑