什么是 Objectwitter-C
Objectwitter-C 是一款稳定,成熟,全面的 Twitter REST/Streaming API 的 Objective-C 封装,其封装了 Twitter 的全部公开 API。由 @开源中国真理部部长 基于 STTwitter 开发,在 STTwitter 对 Twitter REST API 的全面封装的基础上,增添了很多工具类使得 API 更加抽象,易用,并且完全重新设计了 Twitter Streaming API 的封装,利用类似于 NSURLSession/NSURLConnection 的委托模式(delegate)使得用户更容易与 Twitter 流(streaming)API 交互。
Objectwitter-C 不依赖于 AppKit 和 UIKit 即可工作,你可以将该框架用在命令行应用中。你可以把 Objectwitter-C 考虑为 FOSS 版的 Twitter Fabric TwitterKit,但是去掉了 UI 部分并且更加灵活。
将项目目录拖动到你自己的工程中,将你的工程与下列系统框架连接:
Accounts.framework
Social.framework
Twitter.framework (iOS only)
Security.framework (OS X only)
初始化 Twitter API 对象:
STTwitterAPI* twitter = [ STTwitterAPI twitterAPIWithOAuthConsumerKey: @"" consumerSecret: @"" username: @"" password: @"" ];
验证凭据:
[ twitter verifyCredentialsWithUserSuccessBlock: ^( NSString* username, NSString* userID ) { // ... } errorBlock: ^( NSError* error ) { // ... } ];
抓取时间轴(Timeline)中的推文(tweets):
[ twitter getHomeTimelineSinceID: nil count: 100 successBlock: ^( NSArray* statuses ) { // ... } errorBlock: ^( NSError* error ) { // ... } ];
App Only 验证:
STTwitterAPI* twitter = [ STTwitterAPI twitterAPIAppOnlyWithConsumerKey: @"" consumerSecret: @"" ]; [ twitter verifyCredentialsWithUserSuccessBlock: ^( NSString* username, NSString* userID ) { [ twitter getUserTimelineWithScreenName: @"barackobama" successBlock: ^( NSArray* statuses ) { // ... } errorBlock: ^( NSError* error ) { // ... } ]; } errorBlock: ^( NSError* error ) { // ... } ];
使用游标(cursor)枚举返回结果:
[ _twitter fetchAndFollowCursorsForResource: @"followers/ids.json" HTTPMethod: @"GET" baseURLString: @"https://api.twitter.com/1.1" parameters: @{@"screen_name":@"0xcharlie"} uploadProgressBlock: nil downloadProgressBlock: nil successBlock: ^( id request, NSDictionary* requestHeaders, NSDictionary* responseHeaders, id response, BOOL morePagesToCome, BOOL* stop ) { NSLog( @"-- success, more to come: %d, %@", morePagesToCome, response ); } pauseBlock: ^( NSDate* nextRequestDate ) { NSLog( @"-- rate limit exhausted, nextRequestDate: %@", nextRequestDate ); } errorBlock: ^( id request, NSDictionary* requestHeaders, NSDictionary* responseHeaders, NSError* error ) { NSLog( @"-- %@", error ); } ];
不同类型的 OAuth 连接:你可以以三种方法初始化 STTwitterAPI 对象:
使用 OS X Preferences 或者 iOS Settings 中的 Twitter 账号
使用你自己指定的 consumer key 和 consumer secret(四种风格):
获取一个 URL,抓取 PIN 码输入到你的 app 中从而获取 OAuth access token
设置用户名(username)和密码(password),然后使用 XAuth 获取 OAuth access token
直接设置 OAuth token 和 OAuth token secret
打开 Safari 或者使用 UIWebView 实例,执行 Twitter 验证操作然后通过一个定制的 UEL scheme 在你的 app 中直接接收 OAuth access token
使用 Application Only 验证,获取并使用 “bearer token“
有五个 API 对应五种情况:
+ ( STTwitterAPI* ) twitterAPIOSWithFirstAccount; + ( STTwitterAPI* ) twitterAPIWithOAuthConsumerKey: ( NSString* )consumerKey consumerSecret: ( NSString* )consumerSecret; + ( STTwitterAPI* ) twitterAPIWithOAuthConsumerKey: ( NSString* )consumerKey consumerSecret: ( NSString* )consumerSecret username: ( NSString* )username password: ( NSString* )password; + ( STTwitterAPI* ) twitterAPIWithOAuthConsumerKey: ( NSString* )consumerKey consumerSecret: ( NSString* )consumerSecret oauthToken: ( NSString* )oauthToken oauthTokenSecret: ( NSString* )oauthTokenSecret; + ( STTwitterAPI* ) twitterAPIAppOnlyWithConsumerKey: ( NSString* )consumerKey consumerSecret: ( NSString* )consumerSecret;
上面的代码片段只是用于演示,Objectwitter-C API 是对 Twitter API 的全面封装,所以你可以查阅头文件和 Twitter API 文档来了解任何你想要的东西。
在 Twitter API 1.1 中,每个客户端应用必须使用consumer key和consumer secret验证自身。你可以在这个 Twitter 站点中为你的 app 申请 consumer tokens:https://dev.twitter.com/apps.
在 Objectwitter-C 项目中,在 demo_osx 目录下包含了一个 OS X 上的 demo,这个 demo 演示了一部分 API 的用法,并且还可以允许你选择如何获取 OAuth Tokens(如下图):
一旦你成功获取了 OAuth Tokens,你就可以马上使用这个简易的客户端获取你的时间轴并且发一些推文了。同时,项目中还有一个 iOS 的 demo:
浏览头文件和 Twitter API 文档
如果遇到任何问题,可以以下面的方式联系我:
Email me: dG9yaW5Aa3dvay5pbQ== (Base64ed)
简介 Objective-C,是扩充C的面向对象编程语言。它主要使用于Mac OS Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是在C的基础上,加入面向对象特性扩充而成的编程语言。目前,Objective-C主要应用于Mac OS X和iOS这两个NeXTSTEP的衍生系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以
Objective-C是苹果Mac OS X 上开发的首选语言,主要是因为Mac OS X 技术源自NextStep的OpenStep操作系统,因为OPENSTEP的软件架构(framework) 都是用Objetive-C写成,所以MacOS X上的开发最佳语言自然也就是Objective-C了。 Object-C是由Brad Cox在80年代初在第一个纯面向对象语言Smalltalk基础上
Objective-C 编程范型 面向对象 发行时间 1986 设计者 Tom Love和Brad Cox 实作者 Apple Inc. 型态系统 弱类型,动态类型 主要实作产品 Clang、GCC 启发语言 Smalltalk、C 影响语言 Java、Ruby、TOM 操作系统 Cross-platform Objective-C,通常写作ObjC和较
Object-C (方法和消息) 方法和消息 方法:在object-C中有两种方法----实例方法和类方法 实例方法:作用于一些特殊类实例的方法,换句话说:你在调用一个实例方法的时候,你必须先创建类的实例,实例方法是最通用的方法。 类方法:类方法不需要对象的实例作为消息的接受者 实例方法前用(-) 类方法前用(+) 一个方法的实际名字是和其他一些关键字串联在一起的,(包括冒号),冒号后面声明了
一、setter和getter的一般写法 setter和getter器可以说是一个类最基本的东西,任何一门面向对象的语言,都又这个概念,C++、java等等。因为setter和getter是对面向对象语言封装的最基本的支持。 在Objective-C的setter和getter器,当然也和一般的语言没有什么不同。只不过,添加了一些自己的特性。 比如有一个实例变量:int age; 先在.h文件中
书中说在标准C中const定义的变量是外连接的,即如果一个编译单元中定义了一个全局const常量,则其在其他编译单元中是可见的,如果其他编译单元也定义了同名const常量就会产生重复定义错误。这一点与C++不同,C++中const定义的变量是内连接的,即每个编译单元定义的全局const常量是自己独有的。 在c语言中,const const声明的变量是不可改的,必须要进行初始化赋值。否则之后则无法修
文档地址:Property Declaration Attributes section of the Objective-C Programming Language assign:指定setter方法用简单的赋值,这是默认操作。你可以对标量类型(如int)使用这个属性。你可以想象一个float,它不是一个对象,所以它不能retain、copy。 retain:指定retain应该在后面的对象上
swift and oc 1. swift通过括号初始化属性,oc通过alloc init方式初始化. SWIFT let myTableView: UITableView = UITableView(frame: CGRectZero, style: .Grouped) OBJECTIVE-C UITableView *myTableView = [[UITa
swift是苹果最新的编程语言,与谷歌的go一样,在代码的创新和用简洁度上都有的一拼,而相对于大多数人难以企及的d语言,这两种语言其实都是在c或c++的层次,用产品来打比方,就是倾向于用户体验,只是这些用户是对于大多数的普通的程序员而言,当然百度还没出语言,如果有的话,相信是与易语言相关吧,或许会像Dalvik虚拟机与java虚拟机d的关系一样。 选择object-c还是swift,对不远的未来而
命名规范: 对于存取方法的命名,Cocoa有自己的惯例。在为自己的类编写存取方法时,应当遵守这些惯例,这样你和其他人读代码时才不会感到困惑。 setter 方法根据它所更改的属性的名称来命名,并加上前缀set。下面是几个setter方法的名称:setEngine:、setStringValue:、setFont:、setFillColor:和setTextLineHeight:。 getter 方
----------------------------------------------------- ps:个人读物 可以读的一些文章: http://www.hengxinsoft.com/2010/07/objective-c-入门(转)/ http://www.otierney.net/objective-c.html.zh-tw.big5 ----------------------
object_c 类声明: @interface 类名:NSObject { } @end object_c类定义: @implementation 类名 @end 如下例: #import <Foundation/Foundation.h> @interface ABC:NSObject { int x; int y;//instance varaiables } @property i
Objective-C: A Superset of C .h header files. it contains type fucntion constant declarations. .m source files.contain both Object-C and C code. .mm like above.It contain C++ code in addition to Objec
Objective-C是苹果Mac OS X 上开发的首选语言,主要是因为Mac OS X 技术源自NextStep的OpenStep操作系统, 因为OPENSTEP的软件架构(framework) 都是用Objetive-C 写成,所以MacOS X上的开发最佳语言自然也就是Objective-C 了。 Object-C是由 Brad Cox在80年代初在第一个纯面向对象语言Sm
简介 属性(property)是Objective-C的一项特性,用于封装对象中的数据。Objective-C对象通常会把其所需要的数据保存为各种实例变量。实例变量一般通过“存取方法”(access method)来访问。其中,“获取方法”(getter)用于读取变量值,而“设置方法”(setter)用于写入变量值。这个概念已经定型,并且经由“属性”这一特性而成为Objective-C 2.0 的
Object-C属性 @property (retain,nonatomic)UILabel titleLabel; 在objective-C中添加属性之前,通常会定义一些方法用于设置和检索类的实例变量的值。这些方法称为访问方法和修改方法(或称为获取方法和设置方法)。 属性的点表示法: text = [_titleLabeltext]; text = _titleLabel.te
6.6. 封装 一个对象的变量或者方法如果对调用方是不可见的话,一般就被定义为“封装”。封装有时候也被叫做信息隐藏,同时也是面向对象编程最关键的一个方面。 Go语言只有一种控制可见性的手段:大写首字母的标识符会从定义它们的包中被导出,小写字母的则不会。这种限制包内成员的方式同样适用于struct或者一个类型的方法。因而如果我们想要封装一个对象,我们必须将其定义为一个struct。 这也就是前面的小
prototype对象 构造函数的缺点 prototype属性的作用 原型链 constructor属性 Object.getPrototypeOf方法 Object.create方法 isPrototypeOf方法 prototype对象 构造函数的缺点 JavaScript通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法,可以定义在构造函数内部。 function
主要内容:1、public,2、private,3、protected,4、internal,5、protected internalC# 是一门面向对象编程语言,面向对象编程语言有三大特性,分别是封装、 继承和 多态。所谓封装就是将一个或多个项目(函数)集合在一个单元中,这个单元称之为类,我们可以根据需要通过访问权限修饰符来设定类中成员的范围和可见性。C# 中的访问权限修饰符有以下几种: public:公共的,所有对象都可以访问,但是需要引用命名空间; private:私有的,类的内部才可以访
主要内容:Python 类如何进行封装?不光是 Python,大多数面向对象编程语言(诸如 C++、 Java 等)都具备 3 个典型特征,即封装、继承和多态。其中,本节重点讲解 Python 类的封装特性,继承和多态会在后续章节给大家做详细讲解。 简单的理解封装(Encapsulation),即在设计类时,刻意地将一些属性和方法隐藏在类的内部,这样在使用此类时,将无法直接以“类对象.属性名”(或者“类对象.方法名(参数)”)的形式调用
我实现了一个名为mobile eCall的类。我从这个类中创建了几个对象,并用来自XML的值填充该对象的String变量,该XML具有针对特定人员的多个mobile eCall。我需要对这个人发出的所有呼叫进行分组和计数(例如,国内呼叫:11分钟;国际呼叫:15分钟;数据:20 MB) 因此,我在类中实现了几个公共方法来检查调用的类型,以返回true或false。在主类中,我调用了这些方法来检查它
Encapsulation被定义为“将一个或多个项目封装在物理或逻辑包中的过程”。 在面向对象的编程方法中,封装阻止了对实现细节的访问。 抽象和封装是面向对象编程中的相关特征。 抽象允许使相关信息可见,封装使程序员能够implement the desired level of abstraction 。 使用access specifiers实现封装。 access specifier定义类成员