浏览代码

Twitter shut off its unauthorized access to the public timeline; switching example over to the App.net global stream.

Mattt Thompson 13 年之前
父节点
当前提交
424c026f0c

+ 12 - 12
Example/AFNetworking Mac Example.xcodeproj/project.pbxproj

@@ -8,8 +8,8 @@
 
 /* Begin PBXBuildFile section */
 		F8129C001591061B009BFE23 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8129BFF1591061B009BFE23 /* Cocoa.framework */; };
-		F8129C321591073C009BFE23 /* AFTwitterAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C251591073C009BFE23 /* AFTwitterAPIClient.m */; };
-		F8129C341591073C009BFE23 /* Tweet.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C2B1591073C009BFE23 /* Tweet.m */; };
+		F8129C321591073C009BFE23 /* AFAppDotNetAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C251591073C009BFE23 /* AFAppDotNetAPIClient.m */; };
+		F8129C341591073C009BFE23 /* Post.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C2B1591073C009BFE23 /* Post.m */; };
 		F8129C351591073C009BFE23 /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C2D1591073C009BFE23 /* User.m */; };
 		F8129C6F15910B15009BFE23 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C6E15910B15009BFE23 /* main.m */; };
 		F8129C7115910B3E009BFE23 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F8129C7015910B3E009BFE23 /* MainMenu.xib */; };
@@ -31,12 +31,12 @@
 		F8129C021591061B009BFE23 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
 		F8129C031591061B009BFE23 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
 		F8129C041591061B009BFE23 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		F8129C251591073C009BFE23 /* AFTwitterAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFTwitterAPIClient.m; path = Classes/AFTwitterAPIClient.m; sourceTree = SOURCE_ROOT; };
-		F8129C2A1591073C009BFE23 /* Tweet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tweet.h; sourceTree = "<group>"; };
-		F8129C2B1591073C009BFE23 /* Tweet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Tweet.m; sourceTree = "<group>"; };
+		F8129C251591073C009BFE23 /* AFAppDotNetAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFAppDotNetAPIClient.m; path = Classes/AFAppDotNetAPIClient.m; sourceTree = SOURCE_ROOT; };
+		F8129C2A1591073C009BFE23 /* Post.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Post.h; sourceTree = "<group>"; };
+		F8129C2B1591073C009BFE23 /* Post.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Post.m; sourceTree = "<group>"; };
 		F8129C2C1591073C009BFE23 /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
 		F8129C2D1591073C009BFE23 /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
-		F8129C311591073C009BFE23 /* AFTwitterAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFTwitterAPIClient.h; path = Classes/AFTwitterAPIClient.h; sourceTree = SOURCE_ROOT; };
+		F8129C311591073C009BFE23 /* AFAppDotNetAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFAppDotNetAPIClient.h; path = Classes/AFAppDotNetAPIClient.h; sourceTree = SOURCE_ROOT; };
 		F8129C6E15910B15009BFE23 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; };
 		F8129C7015910B3E009BFE23 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = SOURCE_ROOT; };
 		F8129C7515910C40009BFE23 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
@@ -118,8 +118,8 @@
 		F8129C051591061B009BFE23 /* Classes */ = {
 			isa = PBXGroup;
 			children = (
-				F8129C311591073C009BFE23 /* AFTwitterAPIClient.h */,
-				F8129C251591073C009BFE23 /* AFTwitterAPIClient.m */,
+				F8129C311591073C009BFE23 /* AFAppDotNetAPIClient.h */,
+				F8129C251591073C009BFE23 /* AFAppDotNetAPIClient.m */,
 				F8129C7615910C40009BFE23 /* AppDelegate.h */,
 				F8129C7515910C40009BFE23 /* AppDelegate.m */,
 				F8129C291591073C009BFE23 /* Models */,
@@ -141,8 +141,8 @@
 		F8129C291591073C009BFE23 /* Models */ = {
 			isa = PBXGroup;
 			children = (
-				F8129C2A1591073C009BFE23 /* Tweet.h */,
-				F8129C2B1591073C009BFE23 /* Tweet.m */,
+				F8129C2A1591073C009BFE23 /* Post.h */,
+				F8129C2B1591073C009BFE23 /* Post.m */,
 				F8129C2C1591073C009BFE23 /* User.h */,
 				F8129C2D1591073C009BFE23 /* User.m */,
 			);
@@ -241,9 +241,9 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F8129C341591073C009BFE23 /* Tweet.m in Sources */,
+				F8129C341591073C009BFE23 /* Post.m in Sources */,
 				F8129C351591073C009BFE23 /* User.m in Sources */,
-				F8129C321591073C009BFE23 /* AFTwitterAPIClient.m in Sources */,
+				F8129C321591073C009BFE23 /* AFAppDotNetAPIClient.m in Sources */,
 				F8129C6F15910B15009BFE23 /* main.m in Sources */,
 				F8129C7715910C40009BFE23 /* AppDelegate.m in Sources */,
 				F82EB07C159A172000B10B56 /* AFHTTPClient.m in Sources */,

+ 24 - 24
Example/AFNetworking iOS Example.xcodeproj/project.pbxproj

@@ -20,10 +20,10 @@
 		F8E469DF13957DD500DB05C8 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469DE13957DD500DB05C8 /* CoreLocation.framework */; };
 		F8F6E8DC1463424800AD016F /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = F8F6E8D81463424800AD016F /* Icon.png */; };
 		F8F6E8DD1463424800AD016F /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8F6E8D91463424800AD016F /* Icon@2x.png */; };
-		F8FA9491150EF8C100ED4EAD /* AFTwitterAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9490150EF8C100ED4EAD /* AFTwitterAPIClient.m */; };
-		F8FA9494150EF97E00ED4EAD /* Tweet.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9493150EF97E00ED4EAD /* Tweet.m */; };
+		F8FA9491150EF8C100ED4EAD /* AFAppDotNetAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9490150EF8C100ED4EAD /* AFAppDotNetAPIClient.m */; };
+		F8FA9494150EF97E00ED4EAD /* Post.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9493150EF97E00ED4EAD /* Post.m */; };
 		F8FA9497150EF98800ED4EAD /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9496150EF98800ED4EAD /* User.m */; };
-		F8FA949A150EF9DA00ED4EAD /* PublicTimelineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9499150EF9DA00ED4EAD /* PublicTimelineViewController.m */; };
+		F8FA949A150EF9DA00ED4EAD /* GlobalTimelineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9499150EF9DA00ED4EAD /* GlobalTimelineViewController.m */; };
 		F8FA94B1150EFEC100ED4EAD /* AFHTTPClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA949D150EFEC100ED4EAD /* AFHTTPClient.m */; };
 		F8FA94B2150EFEC100ED4EAD /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA949F150EFEC100ED4EAD /* AFHTTPRequestOperation.m */; };
 		F8FA94B3150EFEC100ED4EAD /* AFImageRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA94A1150EFEC100ED4EAD /* AFImageRequestOperation.m */; };
@@ -33,7 +33,7 @@
 		F8FA94B8150EFEC100ED4EAD /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA94AC150EFEC100ED4EAD /* AFURLConnectionOperation.m */; };
 		F8FA94B9150EFEC100ED4EAD /* AFXMLRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA94AE150EFEC100ED4EAD /* AFXMLRequestOperation.m */; };
 		F8FA94BA150EFEC100ED4EAD /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA94B0150EFEC100ED4EAD /* UIImageView+AFNetworking.m */; };
-		F8FA94C1150F019100ED4EAD /* TweetTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA94C0150F019100ED4EAD /* TweetTableViewCell.m */; };
+		F8FA94C1150F019100ED4EAD /* PostTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA94C0150F019100ED4EAD /* PostTableViewCell.m */; };
 		F8FA94D0150F094D00ED4EAD /* profile-image-placeholder.png in Resources */ = {isa = PBXBuildFile; fileRef = F8FA94CC150F094D00ED4EAD /* profile-image-placeholder.png */; };
 		F8FA94D1150F094D00ED4EAD /* profile-image-placeholder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8FA94CD150F094D00ED4EAD /* profile-image-placeholder@2x.png */; };
 /* End PBXBuildFile section */
@@ -57,14 +57,14 @@
 		F8E469E213957DF700DB05C8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
 		F8F6E8D81463424800AD016F /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = SOURCE_ROOT; };
 		F8F6E8D91463424800AD016F /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = SOURCE_ROOT; };
-		F8FA948F150EF8C100ED4EAD /* AFTwitterAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFTwitterAPIClient.h; path = Classes/AFTwitterAPIClient.h; sourceTree = "<group>"; };
-		F8FA9490150EF8C100ED4EAD /* AFTwitterAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFTwitterAPIClient.m; path = Classes/AFTwitterAPIClient.m; sourceTree = "<group>"; };
-		F8FA9492150EF97E00ED4EAD /* Tweet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tweet.h; sourceTree = "<group>"; };
-		F8FA9493150EF97E00ED4EAD /* Tweet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Tweet.m; sourceTree = "<group>"; };
+		F8FA948F150EF8C100ED4EAD /* AFAppDotNetAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFAppDotNetAPIClient.h; path = Classes/AFAppDotNetAPIClient.h; sourceTree = "<group>"; };
+		F8FA9490150EF8C100ED4EAD /* AFAppDotNetAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFAppDotNetAPIClient.m; path = Classes/AFAppDotNetAPIClient.m; sourceTree = "<group>"; };
+		F8FA9492150EF97E00ED4EAD /* Post.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Post.h; sourceTree = "<group>"; };
+		F8FA9493150EF97E00ED4EAD /* Post.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Post.m; sourceTree = "<group>"; };
 		F8FA9495150EF98800ED4EAD /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
 		F8FA9496150EF98800ED4EAD /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
-		F8FA9498150EF9DA00ED4EAD /* PublicTimelineViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PublicTimelineViewController.h; sourceTree = "<group>"; };
-		F8FA9499150EF9DA00ED4EAD /* PublicTimelineViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PublicTimelineViewController.m; sourceTree = "<group>"; };
+		F8FA9498150EF9DA00ED4EAD /* GlobalTimelineViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlobalTimelineViewController.h; sourceTree = "<group>"; };
+		F8FA9499150EF9DA00ED4EAD /* GlobalTimelineViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlobalTimelineViewController.m; sourceTree = "<group>"; };
 		F8FA949C150EFEC100ED4EAD /* AFHTTPClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFHTTPClient.h; sourceTree = "<group>"; };
 		F8FA949D150EFEC100ED4EAD /* AFHTTPClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFHTTPClient.m; sourceTree = "<group>"; };
 		F8FA949E150EFEC100ED4EAD /* AFHTTPRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFHTTPRequestOperation.h; sourceTree = "<group>"; };
@@ -84,8 +84,8 @@
 		F8FA94AE150EFEC100ED4EAD /* AFXMLRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFXMLRequestOperation.m; sourceTree = "<group>"; };
 		F8FA94AF150EFEC100ED4EAD /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+AFNetworking.h"; sourceTree = "<group>"; };
 		F8FA94B0150EFEC100ED4EAD /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImageView+AFNetworking.m"; sourceTree = "<group>"; };
-		F8FA94BF150F019100ED4EAD /* TweetTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetTableViewCell.h; sourceTree = "<group>"; };
-		F8FA94C0150F019100ED4EAD /* TweetTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetTableViewCell.m; sourceTree = "<group>"; };
+		F8FA94BF150F019100ED4EAD /* PostTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostTableViewCell.h; sourceTree = "<group>"; };
+		F8FA94C0150F019100ED4EAD /* PostTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostTableViewCell.m; sourceTree = "<group>"; };
 		F8FA94CC150F094D00ED4EAD /* profile-image-placeholder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "profile-image-placeholder.png"; path = "Images/profile-image-placeholder.png"; sourceTree = SOURCE_ROOT; };
 		F8FA94CD150F094D00ED4EAD /* profile-image-placeholder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "profile-image-placeholder@2x.png"; path = "Images/profile-image-placeholder@2x.png"; sourceTree = SOURCE_ROOT; };
 /* End PBXFileReference section */
@@ -110,8 +110,8 @@
 		F8DA09C61396AB690057D0CC /* Controllers */ = {
 			isa = PBXGroup;
 			children = (
-				F8FA9498150EF9DA00ED4EAD /* PublicTimelineViewController.h */,
-				F8FA9499150EF9DA00ED4EAD /* PublicTimelineViewController.m */,
+				F8FA9498150EF9DA00ED4EAD /* GlobalTimelineViewController.h */,
+				F8FA9499150EF9DA00ED4EAD /* GlobalTimelineViewController.m */,
 			);
 			name = Controllers;
 			path = Classes/Controllers;
@@ -120,8 +120,8 @@
 		F8DA09C91396AB690057D0CC /* Models */ = {
 			isa = PBXGroup;
 			children = (
-				F8FA9492150EF97E00ED4EAD /* Tweet.h */,
-				F8FA9493150EF97E00ED4EAD /* Tweet.m */,
+				F8FA9492150EF97E00ED4EAD /* Post.h */,
+				F8FA9493150EF97E00ED4EAD /* Post.m */,
 				F8FA9495150EF98800ED4EAD /* User.h */,
 				F8FA9496150EF98800ED4EAD /* User.m */,
 			);
@@ -132,8 +132,8 @@
 		F8DA09CC1396AB690057D0CC /* Views */ = {
 			isa = PBXGroup;
 			children = (
-				F8FA94BF150F019100ED4EAD /* TweetTableViewCell.h */,
-				F8FA94C0150F019100ED4EAD /* TweetTableViewCell.m */,
+				F8FA94BF150F019100ED4EAD /* PostTableViewCell.h */,
+				F8FA94C0150F019100ED4EAD /* PostTableViewCell.m */,
 			);
 			name = Views;
 			path = Classes/Views;
@@ -211,8 +211,8 @@
 		F8E469B71395759C00DB05C8 /* Networking Extensions */ = {
 			isa = PBXGroup;
 			children = (
-				F8FA948F150EF8C100ED4EAD /* AFTwitterAPIClient.h */,
-				F8FA9490150EF8C100ED4EAD /* AFTwitterAPIClient.m */,
+				F8FA948F150EF8C100ED4EAD /* AFAppDotNetAPIClient.h */,
+				F8FA9490150EF8C100ED4EAD /* AFAppDotNetAPIClient.m */,
 			);
 			name = "Networking Extensions";
 			sourceTree = "<group>";
@@ -325,10 +325,10 @@
 			buildActionMask = 2147483647;
 			files = (
 				F8DA09E41396AC040057D0CC /* main.m in Sources */,
-				F8FA9491150EF8C100ED4EAD /* AFTwitterAPIClient.m in Sources */,
-				F8FA9494150EF97E00ED4EAD /* Tweet.m in Sources */,
+				F8FA9491150EF8C100ED4EAD /* AFAppDotNetAPIClient.m in Sources */,
+				F8FA9494150EF97E00ED4EAD /* Post.m in Sources */,
 				F8FA9497150EF98800ED4EAD /* User.m in Sources */,
-				F8FA949A150EF9DA00ED4EAD /* PublicTimelineViewController.m in Sources */,
+				F8FA949A150EF9DA00ED4EAD /* GlobalTimelineViewController.m in Sources */,
 				F8FA94B1150EFEC100ED4EAD /* AFHTTPClient.m in Sources */,
 				F8FA94B2150EFEC100ED4EAD /* AFHTTPRequestOperation.m in Sources */,
 				F8FA94B3150EFEC100ED4EAD /* AFImageRequestOperation.m in Sources */,
@@ -338,7 +338,7 @@
 				F8FA94B8150EFEC100ED4EAD /* AFURLConnectionOperation.m in Sources */,
 				F8FA94B9150EFEC100ED4EAD /* AFXMLRequestOperation.m in Sources */,
 				F8FA94BA150EFEC100ED4EAD /* UIImageView+AFNetworking.m in Sources */,
-				F8FA94C1150F019100ED4EAD /* TweetTableViewCell.m in Sources */,
+				F8FA94C1150F019100ED4EAD /* PostTableViewCell.m in Sources */,
 				F8129C7415910C37009BFE23 /* AppDelegate.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;

+ 1 - 1
Example/AppDelegate.h

@@ -43,7 +43,7 @@
 
 @property (strong) IBOutlet NSWindow *window;
 @property (strong) IBOutlet NSTableView *tableView;
-@property (strong) IBOutlet NSArrayController *tweetsArrayController;
+@property (strong) IBOutlet NSArrayController *postsArrayController;
 
 @end
 

+ 6 - 6
Example/AppDelegate.m

@@ -24,7 +24,7 @@
 
 #if __IPHONE_OS_VERSION_MIN_REQUIRED
 
-#import "PublicTimelineViewController.h"
+#import "GlobalTimelineViewController.h"
 
 #import "AFNetworkActivityIndicatorManager.h"
 
@@ -40,7 +40,7 @@ didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
         
     [[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES];
     
-    UITableViewController *viewController = [[PublicTimelineViewController alloc] initWithStyle:UITableViewStylePlain];
+    UITableViewController *viewController = [[GlobalTimelineViewController alloc] initWithStyle:UITableViewStylePlain];
     self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
     self.navigationController.navigationBar.tintColor = [UIColor darkGrayColor];
     
@@ -56,14 +56,14 @@ didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 
 #else
 
-#import "Tweet.h"
+#import "Post.h"
 #import "User.h"
 
 @implementation AppDelegate
 
 @synthesize window = _window;
 @synthesize tableView = _tableView;
-@synthesize tweetsArrayController = _tweetsArrayController;
+@synthesize postsArrayController = _postsArrayController;
 
 - (void)applicationDidFinishLaunching:(NSNotification *)notification {
     NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024 diskCapacity:20 * 1024 * 1024 diskPath:nil];
@@ -71,12 +71,12 @@ didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
     
     [self.window makeKeyAndOrderFront:self];
     
-    [Tweet publicTimelineTweetsWithBlock:^(NSArray *tweets, NSError *error) {
+    [Post globalTimelinePostsWithBlock:^(NSArray *posts, NSError *error) {
         if (error) {
             [[NSAlert alertWithMessageText:NSLocalizedString(@"Error", nil) defaultButton:NSLocalizedString(@"OK", nil) alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@",[error localizedDescription]] runModal];
         }
         
-        self.tweetsArrayController.content = tweets;
+        self.postsArrayController.content = posts;
     }];
     
     [[NSNotificationCenter defaultCenter] addObserverForName:kUserProfileImageDidLoadNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) {

+ 3 - 3
Example/Classes/AFTwitterAPIClient.h → Example/Classes/AFAppDotNetAPIClient.h

@@ -1,4 +1,4 @@
-// AFTwitterAPIClient.h
+// AFAppDotNetAPIClient.h
 //
 // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
 // 
@@ -23,8 +23,8 @@
 #import <Foundation/Foundation.h>
 #import "AFHTTPClient.h"
 
-@interface AFTwitterAPIClient : AFHTTPClient
+@interface AFAppDotNetAPIClient : AFHTTPClient
 
-+ (AFTwitterAPIClient *)sharedClient;
++ (AFAppDotNetAPIClient *)sharedClient;
 
 @end

+ 7 - 7
Example/Classes/AFTwitterAPIClient.m → Example/Classes/AFAppDotNetAPIClient.m

@@ -1,4 +1,4 @@
-// AFTwitterAPIClient.h
+// AFAppDotNetAPIClient.h
 //
 // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
 // 
@@ -20,19 +20,19 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#import "AFTwitterAPIClient.h"
+#import "AFAppDotNetAPIClient.h"
 
 #import "AFJSONRequestOperation.h"
 
-static NSString * const kAFTwitterAPIBaseURLString = @"http://api.twitter.com/1/";
+static NSString * const kAFAppDotNetAPIBaseURLString = @"https://alpha-api.app.net/";
 
-@implementation AFTwitterAPIClient
+@implementation AFAppDotNetAPIClient
 
-+ (AFTwitterAPIClient *)sharedClient {
-    static AFTwitterAPIClient *_sharedClient = nil;
++ (AFAppDotNetAPIClient *)sharedClient {
+    static AFAppDotNetAPIClient *_sharedClient = nil;
     static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
-        _sharedClient = [[AFTwitterAPIClient alloc] initWithBaseURL:[NSURL URLWithString:kAFTwitterAPIBaseURLString]];
+        _sharedClient = [[AFAppDotNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:kAFAppDotNetAPIBaseURLString]];
     });
     
     return _sharedClient;

+ 2 - 2
Example/Classes/Controllers/PublicTimelineViewController.h → Example/Classes/Controllers/GlobalTimelineViewController.h

@@ -1,4 +1,4 @@
-// PublicTimelineViewController.h
+// GlobalTimelineViewController.h
 //
 // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
 // 
@@ -22,6 +22,6 @@
 
 #import <UIKit/UIKit.h>
 
-@interface PublicTimelineViewController : UITableViewController
+@interface GlobalTimelineViewController : UITableViewController
 
 @end

+ 14 - 30
Example/Classes/Controllers/PublicTimelineViewController.m → Example/Classes/Controllers/GlobalTimelineViewController.m

@@ -1,4 +1,4 @@
-// PublicTimelineViewController.m
+// GlobalTimelineViewController.m
 //
 // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
 // 
@@ -20,19 +20,19 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#import "PublicTimelineViewController.h"
+#import "GlobalTimelineViewController.h"
 
-#import "Tweet.h"
+#import "Post.h"
 
-#import "TweetTableViewCell.h"
+#import "PostTableViewCell.h"
 
-@interface PublicTimelineViewController ()
+@interface GlobalTimelineViewController ()
 - (void)reload:(id)sender;
 @end
 
-@implementation PublicTimelineViewController {
+@implementation GlobalTimelineViewController {
 @private
-    NSArray *_tweets;
+    NSArray *_posts;
     
     __strong UIActivityIndicatorView *_activityIndicatorView;
 }
@@ -41,11 +41,11 @@
     [_activityIndicatorView startAnimating];
     self.navigationItem.rightBarButtonItem.enabled = NO;
     
-    [Tweet publicTimelineTweetsWithBlock:^(NSArray *tweets, NSError *error) {
+    [Post globalTimelinePostsWithBlock:^(NSArray *posts, NSError *error) {
         if (error) {
             [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", nil), nil] show];
         } else {
-            _tweets = tweets;
+            _posts = posts;
             [self.tableView reloadData];
         }
         
@@ -82,37 +82,21 @@
     [super viewDidUnload];
 }
 
-- (void)viewWillAppear:(BOOL)animated {
-    [super viewWillAppear:animated];
-}
-
-- (void)viewDidAppear:(BOOL)animated {
-    [super viewDidAppear:animated];
-}
-
-- (void)viewWillDisappear:(BOOL)animated {
-	[super viewWillDisappear:animated];
-}
-
-- (void)viewDidDisappear:(BOOL)animated {
-	[super viewDidDisappear:animated];
-}
-
 #pragma mark - UITableViewDataSource
 
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    return [_tweets count];
+    return [_posts count];
 }
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     static NSString *CellIdentifier = @"Cell";
     
-    TweetTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+    PostTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (!cell) {
-        cell = [[TweetTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
+        cell = [[PostTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
     }
     
-    cell.tweet = [_tweets objectAtIndex:indexPath.row];
+    cell.post = [_posts objectAtIndex:indexPath.row];
     
     return cell;
 }
@@ -120,7 +104,7 @@
 #pragma mark - UITableViewDelegate
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
-    return [TweetTableViewCell heightForCellWithTweet:[_tweets objectAtIndex:indexPath.row]];
+    return [PostTableViewCell heightForCellWithPost:[_posts objectAtIndex:indexPath.row]];
 }
 
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

+ 4 - 4
Example/Classes/Models/Tweet.h → Example/Classes/Models/Post.h

@@ -1,4 +1,4 @@
-// Tweet.h
+// Post.h
 //
 // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
 // 
@@ -24,15 +24,15 @@
 
 @class User;
 
-@interface Tweet : NSObject
+@interface Post : NSObject
 
-@property (readonly) NSUInteger tweetID;
+@property (readonly) NSUInteger postID;
 @property (readonly) NSString *text;
 
 @property (readonly) User *user;
 
 - (id)initWithAttributes:(NSDictionary *)attributes;
 
-+ (void)publicTimelineTweetsWithBlock:(void (^)(NSArray *tweets, NSError *error))block;
++ (void)globalTimelinePostsWithBlock:(void (^)(NSArray *posts, NSError *error))block;
 
 @end

+ 12 - 12
Example/Classes/Models/Tweet.m → Example/Classes/Models/Post.m

@@ -1,4 +1,4 @@
-// Tweet.m
+// Post.m
 //
 // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
 // 
@@ -20,13 +20,13 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#import "Tweet.h"
+#import "Post.h"
 #import "User.h"
 
-#import "AFTwitterAPIClient.h"
+#import "AFAppDotNetAPIClient.h"
 
-@implementation Tweet
-@synthesize tweetID = _tweetID;
+@implementation Post
+@synthesize postID = _postID;
 @synthesize text = _text;
 @synthesize user = _user;
 
@@ -36,7 +36,7 @@
         return nil;
     }
     
-    _tweetID = [[attributes valueForKeyPath:@"id"] integerValue];
+    _postID = [[attributes valueForKeyPath:@"id"] integerValue];
     _text = [attributes valueForKeyPath:@"text"];
     
     _user = [[User alloc] initWithAttributes:[attributes valueForKeyPath:@"user"]];
@@ -46,16 +46,16 @@
 
 #pragma mark -
 
-+ (void)publicTimelineTweetsWithBlock:(void (^)(NSArray *tweets, NSError *error))block {
-    [[AFTwitterAPIClient sharedClient] getPath:@"statuses/public_timeline.json" parameters:[NSDictionary dictionaryWithObject:@"false" forKey:@"include_entities"] success:^(AFHTTPRequestOperation *operation, id JSON) {
-        NSMutableArray *mutableTweets = [NSMutableArray arrayWithCapacity:[JSON count]];
++ (void)globalTimelinePostsWithBlock:(void (^)(NSArray *posts, NSError *error))block {
+    [[AFAppDotNetAPIClient sharedClient] getPath:@"stream/0/posts/stream/global" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON) {
+        NSMutableArray *mutablePosts = [NSMutableArray arrayWithCapacity:[JSON count]];
         for (NSDictionary *attributes in JSON) {
-            Tweet *tweet = [[Tweet alloc] initWithAttributes:attributes];
-            [mutableTweets addObject:tweet];
+            Post *post = [[Post alloc] initWithAttributes:attributes];
+            [mutablePosts addObject:post];
         }
         
         if (block) {
-            block([NSArray arrayWithArray:mutableTweets], nil);
+            block([NSArray arrayWithArray:mutablePosts], nil);
         }
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         if (block) {

+ 1 - 1
Example/Classes/Models/User.h

@@ -28,7 +28,7 @@ extern NSString * const kUserProfileImageDidLoadNotification;
 
 @property (readonly) NSUInteger userID;
 @property (readonly) NSString *username;
-@property (unsafe_unretained, readonly) NSURL *profileImageURL;
+@property (unsafe_unretained, readonly) NSURL *avatarImageURL;
 
 - (id)initWithAttributes:(NSDictionary *)attributes;
 

+ 11 - 11
Example/Classes/Models/User.m

@@ -33,8 +33,8 @@ NSString * const kUserProfileImageDidLoadNotification = @"com.alamofire.user.pro
 
 @implementation User {
 @private
-    __strong NSString *_profileImageURLString;
-    __strong AFImageRequestOperation *_profileImageRequestOperation;
+    __strong NSString *_avatarImageURLString;
+    __strong AFImageRequestOperation *_avatarImageRequestOperation;
 }
 
 @synthesize userID = _userID;
@@ -47,14 +47,14 @@ NSString * const kUserProfileImageDidLoadNotification = @"com.alamofire.user.pro
     }
     
     _userID = [[attributes valueForKeyPath:@"id"] integerValue];
-    _username = [attributes valueForKeyPath:@"screen_name"];
-    _profileImageURLString = [attributes valueForKeyPath:@"profile_image_url_https"];
+    _username = [attributes valueForKeyPath:@"username"];
+    _avatarImageURLString = [attributes valueForKeyPath:@"avatar_image.url"];
     
     return self;
 }
 
-- (NSURL *)profileImageURL {
-    return [NSURL URLWithString:_profileImageURLString];
+- (NSURL *)avatarImageURL {
+    return [NSURL URLWithString:_avatarImageURLString];
 }
 
 #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
@@ -73,20 +73,20 @@ NSString * const kUserProfileImageDidLoadNotification = @"com.alamofire.user.pro
 }
 
 - (NSImage *)profileImage {
-	if (!_profileImage && !_profileImageRequestOperation) {
-		_profileImageRequestOperation = [AFImageRequestOperation imageRequestOperationWithRequest:[NSURLRequest requestWithURL:self.profileImageURL] success:^(NSImage *image) {
+	if (!_profileImage && !_avatarImageRequestOperation) {
+		_avatarImageRequestOperation = [AFImageRequestOperation imageRequestOperationWithRequest:[NSURLRequest requestWithURL:self.avatarImageURL] success:^(NSImage *image) {
 			self.profileImage = image;
             
-			_profileImageRequestOperation = nil;
+			_avatarImageRequestOperation = nil;
             
             [[NSNotificationCenter defaultCenter] postNotificationName:kUserProfileImageDidLoadNotification object:self userInfo:nil];
 		}];
         
-		[_profileImageRequestOperation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) {
+		[_avatarImageRequestOperation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) {
 			return [[NSCachedURLResponse alloc] initWithResponse:cachedResponse.response data:cachedResponse.data userInfo:cachedResponse.userInfo storagePolicy:NSURLCacheStorageAllowed];
 		}];
 		
-        [[[self class] sharedProfileImageRequestOperationQueue] addOperation:_profileImageRequestOperation];
+        [[[self class] sharedProfileImageRequestOperationQueue] addOperation:_avatarImageRequestOperation];
 	}
 	
 	return _profileImage;

+ 4 - 4
Example/Classes/Views/TweetTableViewCell.h → Example/Classes/Views/PostTableViewCell.h

@@ -22,12 +22,12 @@
 
 #import <UIKit/UIKit.h>
 
-@class Tweet;
+@class Post;
 
-@interface TweetTableViewCell : UITableViewCell
+@interface PostTableViewCell : UITableViewCell
 
-@property (nonatomic, strong) Tweet *tweet;
+@property (nonatomic, strong) Post *post;
 
-+ (CGFloat)heightForCellWithTweet:(Tweet *)tweet;
++ (CGFloat)heightForCellWithPost:(Post *)post;
 
 @end

+ 13 - 13
Example/Classes/Views/TweetTableViewCell.m → Example/Classes/Views/PostTableViewCell.m

@@ -20,19 +20,19 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-#import "TweetTableViewCell.h"
+#import "PostTableViewCell.h"
 
-#import "Tweet.h"
+#import "Post.h"
 #import "User.h"
 
 #import "UIImageView+AFNetworking.h"
 
-@implementation TweetTableViewCell {
+@implementation PostTableViewCell {
 @private
-    __strong Tweet *_tweet;    
+    __strong Post *_post;
 }
 
-@synthesize tweet = _tweet;
+@synthesize post = _post;
 
 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
@@ -49,18 +49,18 @@
     return self;
 }
 
-- (void)setTweet:(Tweet *)tweet {
-    _tweet = tweet;
+- (void)setPost:(Post *)post {
+    _post = post;
 
-    self.textLabel.text = _tweet.user.username;
-    self.detailTextLabel.text = _tweet.text;
-    [self.imageView setImageWithURL:_tweet.user.profileImageURL placeholderImage:[UIImage imageNamed:@"profile-image-placeholder"]];
+    self.textLabel.text = _post.user.username;
+    self.detailTextLabel.text = _post.text;
+    [self.imageView setImageWithURL:_post.user.avatarImageURL placeholderImage:[UIImage imageNamed:@"profile-image-placeholder"]];
     
     [self setNeedsLayout];
 }
 
-+ (CGFloat)heightForCellWithTweet:(Tweet *)tweet {
-    CGSize sizeToFit = [tweet.text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(220.0f, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
++ (CGFloat)heightForCellWithPost:(Post *)post {
+    CGSize sizeToFit = [post.text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(220.0f, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
     
     return fmaxf(70.0f, sizeToFit.height + 45.0f);
 }
@@ -74,7 +74,7 @@
     self.textLabel.frame = CGRectMake(70.0f, 10.0f, 240.0f, 20.0f);
     
     CGRect detailTextLabelFrame = CGRectOffset(self.textLabel.frame, 0.0f, 25.0f);
-    detailTextLabelFrame.size.height = [[self class] heightForCellWithTweet:_tweet] - 45.0f;
+    detailTextLabelFrame.size.height = [[self class] heightForCellWithPost:_post] - 45.0f;
     self.detailTextLabel.frame = detailTextLabelFrame;
 }
 

+ 110 - 109
Example/MainMenu.xib

@@ -1,33 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
 	<data>
-		<int key="IBDocument.SystemTarget">1070</int>
-		<string key="IBDocument.SystemVersion">11E53</string>
-		<string key="IBDocument.InterfaceBuilderVersion">2182</string>
-		<string key="IBDocument.AppKitVersion">1138.47</string>
-		<string key="IBDocument.HIToolboxVersion">569.00</string>
+		<int key="IBDocument.SystemTarget">1080</int>
+		<string key="IBDocument.SystemVersion">12B19</string>
+		<string key="IBDocument.InterfaceBuilderVersion">2840</string>
+		<string key="IBDocument.AppKitVersion">1187</string>
+		<string key="IBDocument.HIToolboxVersion">624.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			<string key="NS.object.0">2182</string>
+			<string key="NS.object.0">2840</string>
 		</object>
 		<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<string>NSScroller</string>
+			<string>IBNSLayoutConstraint</string>
 			<string>NSArrayController</string>
-			<string>NSMenuItem</string>
+			<string>NSCustomObject</string>
+			<string>NSImageCell</string>
+			<string>NSImageView</string>
 			<string>NSMenu</string>
+			<string>NSMenuItem</string>
 			<string>NSScrollView</string>
-			<string>NSTextFieldCell</string>
-			<string>NSImageView</string>
-			<string>NSImageCell</string>
-			<string>NSTableView</string>
+			<string>NSScroller</string>
 			<string>NSTableCellView</string>
-			<string>IBNSLayoutConstraint</string>
-			<string>NSCustomObject</string>
-			<string>NSView</string>
-			<string>NSWindowTemplate</string>
 			<string>NSTableColumn</string>
+			<string>NSTableView</string>
 			<string>NSTextField</string>
+			<string>NSTextFieldCell</string>
+			<string>NSView</string>
+			<string>NSWindowTemplate</string>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
@@ -395,7 +395,7 @@
 				<string key="NSWindowContentMaxSize">{375, 1280}</string>
 				<string key="NSWindowContentMinSize">{375, 200}</string>
 				<object class="NSView" key="NSWindowView" id="439893737">
-					<reference key="NSNextResponder"/>
+					<nil key="NSNextResponder"/>
 					<int key="NSvFlags">256</int>
 					<object class="NSMutableArray" key="NSSubviews">
 						<bool key="EncodedWithXMLCoder">YES</bool>
@@ -412,12 +412,16 @@
 										<object class="NSTableView" id="256434433">
 											<reference key="NSNextResponder" ref="411548182"/>
 											<int key="NSvFlags">256</int>
+											<object class="NSMutableArray" key="NSSubviews">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+											</object>
 											<string key="NSFrameSize">{331, 498}</string>
 											<reference key="NSSuperview" ref="411548182"/>
-											<reference key="NSWindow"/>
 											<reference key="NSNextKeyView" ref="505772708"/>
 											<string key="NSReuseIdentifierKey">_NS:1197</string>
 											<bool key="NSEnabled">YES</bool>
+											<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
+											<bool key="NSControlAllowsExpansionToolTips">YES</bool>
 											<object class="_NSCornerView" key="NSCornerView">
 												<nil key="NSNextResponder"/>
 												<int key="NSvFlags">-2147483392</int>
@@ -431,7 +435,7 @@
 													<double key="NSMinWidth">70</double>
 													<double key="NSMaxWidth">10000</double>
 													<object class="NSTableHeaderCell" key="NSHeaderCell">
-														<int key="NSCellFlags">75628096</int>
+														<int key="NSCellFlags">75497536</int>
 														<int key="NSCellFlags2">2048</int>
 														<string key="NSContents"/>
 														<object class="NSFont" key="NSSupport">
@@ -454,13 +458,8 @@
 														</object>
 													</object>
 													<object class="NSImageCell" key="NSDataCell" id="717955434">
-														<int key="NSCellFlags">67239424</int>
+														<int key="NSCellFlags">134217728</int>
 														<int key="NSCellFlags2">33554432</int>
-														<object class="NSFont" key="NSSupport">
-															<string key="NSName">LucidaGrande</string>
-															<double key="NSSize">13</double>
-															<int key="NSfFlags">1044</int>
-														</object>
 														<string key="NSCellIdentifier">_NS:4045</string>
 														<int key="NSAlign">1</int>
 														<int key="NSScale">0</int>
@@ -502,7 +501,6 @@
 									</object>
 									<string key="NSFrame">{{1, 1}, {331, 498}}</string>
 									<reference key="NSSuperview" ref="905625827"/>
-									<reference key="NSWindow"/>
 									<reference key="NSNextKeyView" ref="256434433"/>
 									<string key="NSReuseIdentifierKey">_NS:1195</string>
 									<reference key="NSDocView" ref="256434433"/>
@@ -522,9 +520,9 @@
 									<int key="NSvFlags">-2147483392</int>
 									<string key="NSFrame">{{224, 17}, {15, 102}}</string>
 									<reference key="NSSuperview" ref="905625827"/>
-									<reference key="NSWindow"/>
 									<reference key="NSNextKeyView" ref="870849666"/>
 									<string key="NSReuseIdentifierKey">_NS:1214</string>
+									<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 									<reference key="NSTarget" ref="905625827"/>
 									<string key="NSAction">_doScroller:</string>
 									<double key="NSPercent">0.99815157116451014</double>
@@ -534,8 +532,8 @@
 									<int key="NSvFlags">-2147483392</int>
 									<string key="NSFrame">{{1, 484}, {373, 15}}</string>
 									<reference key="NSSuperview" ref="905625827"/>
-									<reference key="NSWindow"/>
 									<string key="NSReuseIdentifierKey">_NS:1216</string>
+									<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 									<int key="NSsFlags">1</int>
 									<reference key="NSTarget" ref="905625827"/>
 									<string key="NSAction">_doScroller:</string>
@@ -544,7 +542,6 @@
 							</object>
 							<string key="NSFrame">{{-1, 0}, {333, 500}}</string>
 							<reference key="NSSuperview" ref="439893737"/>
-							<reference key="NSWindow"/>
 							<reference key="NSNextKeyView" ref="411548182"/>
 							<string key="NSReuseIdentifierKey">_NS:1193</string>
 							<int key="NSsFlags">133682</int>
@@ -552,11 +549,12 @@
 							<reference key="NSHScroller" ref="870849666"/>
 							<reference key="NSContentView" ref="411548182"/>
 							<bytes key="NSScrollAmts">QSAAAEEgAABCvgAAQr4AAA</bytes>
+							<double key="NSMinMagnification">0.25</double>
+							<double key="NSMaxMagnification">4</double>
+							<double key="NSMagnification">1</double>
 						</object>
 					</object>
 					<string key="NSFrameSize">{331, 500}</string>
-					<reference key="NSSuperview"/>
-					<reference key="NSWindow"/>
 					<reference key="NSNextKeyView" ref="905625827"/>
 				</object>
 				<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
@@ -745,19 +743,19 @@
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
-						<string key="label">tweetsArrayController</string>
+						<string key="label">tableView</string>
 						<reference key="source" ref="976324537"/>
-						<reference key="destination" ref="680254480"/>
+						<reference key="destination" ref="256434433"/>
 					</object>
-					<int key="connectionID">609</int>
+					<int key="connectionID">848</int>
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
-						<string key="label">tableView</string>
+						<string key="label">postsArrayController</string>
 						<reference key="source" ref="976324537"/>
-						<reference key="destination" ref="256434433"/>
+						<reference key="destination" ref="680254480"/>
 					</object>
-					<int key="connectionID">848</int>
+					<int key="connectionID">849</int>
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBBindingConnection" key="connection">
@@ -792,7 +790,7 @@
 									<string key="NSAntiCompressionPriority">{250, 750}</string>
 									<bool key="NSEnabled">YES</bool>
 									<object class="NSTextFieldCell" key="NSCell" id="602054441">
-										<int key="NSCellFlags">67239488</int>
+										<int key="NSCellFlags">67108928</int>
 										<int key="NSCellFlags2">272631808</int>
 										<string key="NSContents">Username</string>
 										<object class="NSFont" key="NSSupport">
@@ -814,6 +812,7 @@
 											<reference key="NSColor" ref="840334811"/>
 										</object>
 									</object>
+									<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 								</object>
 								<object class="NSImageView" id="615770799">
 									<reference key="NSNextResponder" ref="505772708"/>
@@ -836,7 +835,7 @@
 									<string key="NSReuseIdentifierKey">_NS:9</string>
 									<bool key="NSEnabled">YES</bool>
 									<object class="NSImageCell" key="NSCell" id="1006424888">
-										<int key="NSCellFlags">130560</int>
+										<int key="NSCellFlags">134217728</int>
 										<int key="NSCellFlags2">33554432</int>
 										<string key="NSCellIdentifier">_NS:9</string>
 										<int key="NSAlign">0</int>
@@ -844,6 +843,7 @@
 										<int key="NSStyle">1</int>
 										<bool key="NSAnimates">NO</bool>
 									</object>
+									<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 									<bool key="NSEditable">YES</bool>
 								</object>
 								<object class="NSTextField" id="472484220">
@@ -856,7 +856,7 @@
 									<string key="NSAntiCompressionPriority">{250, 750}</string>
 									<bool key="NSEnabled">YES</bool>
 									<object class="NSTextFieldCell" key="NSCell" id="429971541">
-										<int key="NSCellFlags">67239424</int>
+										<int key="NSCellFlags">67108864</int>
 										<int key="NSCellFlags2">272629760</int>
 										<string key="NSContents">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad mi.</string>
 										<object class="NSFont" key="NSSupport">
@@ -869,6 +869,7 @@
 										<reference key="NSBackgroundColor" ref="790157350"/>
 										<reference key="NSTextColor" ref="475189419"/>
 									</object>
+									<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
 								</object>
 							</object>
 							<string key="NSFrame">{{5, 5}, {321, 85}}</string>
@@ -1115,10 +1116,10 @@
 									<double key="value">0.0</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="439893737"/>
 								<int key="scoringType">5</int>
 								<float key="scoringTypeFloat">22</float>
 								<int key="contentType">2</int>
-								<reference key="containingView" ref="439893737"/>
 							</object>
 							<object class="IBNSLayoutConstraint" id="792626335">
 								<reference key="firstItem" ref="439893737"/>
@@ -1131,10 +1132,10 @@
 									<double key="value">-1</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="439893737"/>
 								<int key="scoringType">8</int>
 								<float key="scoringTypeFloat">29</float>
 								<int key="contentType">3</int>
-								<reference key="containingView" ref="439893737"/>
 							</object>
 							<object class="IBNSLayoutConstraint" id="865651107">
 								<reference key="firstItem" ref="905625827"/>
@@ -1147,10 +1148,10 @@
 									<double key="value">-1</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="439893737"/>
 								<int key="scoringType">8</int>
 								<float key="scoringTypeFloat">29</float>
 								<int key="contentType">3</int>
-								<reference key="containingView" ref="439893737"/>
 							</object>
 							<object class="IBNSLayoutConstraint" id="590922666">
 								<reference key="firstItem" ref="905625827"/>
@@ -1163,10 +1164,10 @@
 									<double key="value">0.0</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="439893737"/>
 								<int key="scoringType">3</int>
 								<float key="scoringTypeFloat">9</float>
 								<int key="contentType">3</int>
-								<reference key="containingView" ref="439893737"/>
 							</object>
 						</object>
 						<reference key="parent" ref="972006081"/>
@@ -1262,86 +1263,69 @@
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<reference ref="373530427"/>
 							<reference ref="472484220"/>
-							<object class="IBNSLayoutConstraint" id="716515170">
+							<object class="IBNSLayoutConstraint" id="376417113">
 								<reference key="firstItem" ref="472484220"/>
-								<int key="firstAttribute">3</int>
-								<int key="relation">0</int>
-								<reference key="secondItem" ref="505772708"/>
-								<int key="secondAttribute">3</int>
-								<float key="multiplier">1</float>
-								<object class="IBLayoutConstant" key="constant">
-									<double key="value">26</double>
-								</object>
-								<float key="priority">1000</float>
-								<int key="scoringType">9</int>
-								<float key="scoringTypeFloat">40</float>
-								<int key="contentType">3</int>
-								<reference key="containingView" ref="505772708"/>
-							</object>
-							<reference ref="615770799"/>
-							<object class="IBNSLayoutConstraint" id="124660203">
-								<reference key="firstItem" ref="615770799"/>
 								<int key="firstAttribute">5</int>
 								<int key="relation">0</int>
 								<reference key="secondItem" ref="505772708"/>
 								<int key="secondAttribute">5</int>
 								<float key="multiplier">1</float>
 								<object class="IBLayoutConstant" key="constant">
-									<double key="value">17</double>
+									<double key="value">87</double>
 								</object>
 								<float key="priority">1000</float>
-								<int key="scoringType">3</int>
-								<float key="scoringTypeFloat">9</float>
-								<int key="contentType">3</int>
 								<reference key="containingView" ref="505772708"/>
+								<int key="scoringType">9</int>
+								<float key="scoringTypeFloat">40</float>
+								<int key="contentType">3</int>
 							</object>
-							<object class="IBNSLayoutConstraint" id="210332473">
-								<reference key="firstItem" ref="615770799"/>
+							<object class="IBNSLayoutConstraint" id="716515170">
+								<reference key="firstItem" ref="472484220"/>
 								<int key="firstAttribute">3</int>
 								<int key="relation">0</int>
 								<reference key="secondItem" ref="505772708"/>
 								<int key="secondAttribute">3</int>
 								<float key="multiplier">1</float>
 								<object class="IBLayoutConstant" key="constant">
-									<double key="value">11</double>
+									<double key="value">26</double>
 								</object>
 								<float key="priority">1000</float>
-								<int key="scoringType">3</int>
-								<float key="scoringTypeFloat">9</float>
-								<int key="contentType">3</int>
 								<reference key="containingView" ref="505772708"/>
+								<int key="scoringType">9</int>
+								<float key="scoringTypeFloat">40</float>
+								<int key="contentType">3</int>
 							</object>
-							<object class="IBNSLayoutConstraint" id="971396673">
-								<reference key="firstItem" ref="505772708"/>
-								<int key="firstAttribute">6</int>
+							<object class="IBNSLayoutConstraint" id="958031551">
+								<reference key="firstItem" ref="373530427"/>
+								<int key="firstAttribute">5</int>
 								<int key="relation">0</int>
-								<reference key="secondItem" ref="373530427"/>
-								<int key="secondAttribute">6</int>
+								<reference key="secondItem" ref="505772708"/>
+								<int key="secondAttribute">5</int>
 								<float key="multiplier">1</float>
 								<object class="IBLayoutConstant" key="constant">
-									<double key="value">3</double>
+									<double key="value">87</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="505772708"/>
 								<int key="scoringType">9</int>
 								<float key="scoringTypeFloat">40</float>
 								<int key="contentType">3</int>
-								<reference key="containingView" ref="505772708"/>
 							</object>
-							<object class="IBNSLayoutConstraint" id="14444973">
+							<object class="IBNSLayoutConstraint" id="226440407">
 								<reference key="firstItem" ref="373530427"/>
-								<int key="firstAttribute">5</int>
+								<int key="firstAttribute">9</int>
 								<int key="relation">0</int>
 								<reference key="secondItem" ref="472484220"/>
-								<int key="secondAttribute">5</int>
+								<int key="secondAttribute">9</int>
 								<float key="multiplier">1</float>
 								<object class="IBLayoutConstant" key="constant">
 									<double key="value">0.0</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="505772708"/>
 								<int key="scoringType">9</int>
 								<float key="scoringTypeFloat">40</float>
 								<int key="contentType">2</int>
-								<reference key="containingView" ref="505772708"/>
 							</object>
 							<object class="IBNSLayoutConstraint" id="1049409873">
 								<reference key="firstItem" ref="373530427"/>
@@ -1354,59 +1338,76 @@
 									<double key="value">3</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="505772708"/>
 								<int key="scoringType">8</int>
 								<float key="scoringTypeFloat">29</float>
 								<int key="contentType">3</int>
-								<reference key="containingView" ref="505772708"/>
 							</object>
-							<object class="IBNSLayoutConstraint" id="226440407">
+							<object class="IBNSLayoutConstraint" id="14444973">
 								<reference key="firstItem" ref="373530427"/>
-								<int key="firstAttribute">9</int>
+								<int key="firstAttribute">5</int>
 								<int key="relation">0</int>
 								<reference key="secondItem" ref="472484220"/>
-								<int key="secondAttribute">9</int>
+								<int key="secondAttribute">5</int>
 								<float key="multiplier">1</float>
 								<object class="IBLayoutConstant" key="constant">
 									<double key="value">0.0</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="505772708"/>
 								<int key="scoringType">9</int>
 								<float key="scoringTypeFloat">40</float>
 								<int key="contentType">2</int>
-								<reference key="containingView" ref="505772708"/>
 							</object>
-							<object class="IBNSLayoutConstraint" id="376417113">
-								<reference key="firstItem" ref="472484220"/>
-								<int key="firstAttribute">5</int>
+							<object class="IBNSLayoutConstraint" id="971396673">
+								<reference key="firstItem" ref="505772708"/>
+								<int key="firstAttribute">6</int>
 								<int key="relation">0</int>
-								<reference key="secondItem" ref="505772708"/>
-								<int key="secondAttribute">5</int>
+								<reference key="secondItem" ref="373530427"/>
+								<int key="secondAttribute">6</int>
 								<float key="multiplier">1</float>
 								<object class="IBLayoutConstant" key="constant">
-									<double key="value">87</double>
+									<double key="value">3</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="505772708"/>
 								<int key="scoringType">9</int>
 								<float key="scoringTypeFloat">40</float>
 								<int key="contentType">3</int>
+							</object>
+							<object class="IBNSLayoutConstraint" id="210332473">
+								<reference key="firstItem" ref="615770799"/>
+								<int key="firstAttribute">3</int>
+								<int key="relation">0</int>
+								<reference key="secondItem" ref="505772708"/>
+								<int key="secondAttribute">3</int>
+								<float key="multiplier">1</float>
+								<object class="IBLayoutConstant" key="constant">
+									<double key="value">11</double>
+								</object>
+								<float key="priority">1000</float>
 								<reference key="containingView" ref="505772708"/>
+								<int key="scoringType">3</int>
+								<float key="scoringTypeFloat">9</float>
+								<int key="contentType">3</int>
 							</object>
-							<object class="IBNSLayoutConstraint" id="958031551">
-								<reference key="firstItem" ref="373530427"/>
+							<object class="IBNSLayoutConstraint" id="124660203">
+								<reference key="firstItem" ref="615770799"/>
 								<int key="firstAttribute">5</int>
 								<int key="relation">0</int>
 								<reference key="secondItem" ref="505772708"/>
 								<int key="secondAttribute">5</int>
 								<float key="multiplier">1</float>
 								<object class="IBLayoutConstant" key="constant">
-									<double key="value">87</double>
+									<double key="value">17</double>
 								</object>
 								<float key="priority">1000</float>
-								<int key="scoringType">9</int>
-								<float key="scoringTypeFloat">40</float>
-								<int key="contentType">3</int>
 								<reference key="containingView" ref="505772708"/>
+								<int key="scoringType">3</int>
+								<float key="scoringTypeFloat">9</float>
+								<int key="contentType">3</int>
 							</object>
+							<reference ref="615770799"/>
 						</object>
 						<reference key="parent" ref="553559566"/>
 					</object>
@@ -1427,10 +1428,10 @@
 									<double key="value">17</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="373530427"/>
 								<int key="scoringType">3</int>
 								<float key="scoringTypeFloat">9</float>
 								<int key="contentType">1</int>
-								<reference key="containingView" ref="373530427"/>
 							</object>
 						</object>
 						<reference key="parent" ref="505772708"/>
@@ -1457,10 +1458,10 @@
 									<double key="value">50</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="615770799"/>
 								<int key="scoringType">9</int>
 								<float key="scoringTypeFloat">40</float>
 								<int key="contentType">1</int>
-								<reference key="containingView" ref="615770799"/>
 							</object>
 							<object class="IBNSLayoutConstraint" id="1014208838">
 								<reference key="firstItem" ref="615770799"/>
@@ -1473,10 +1474,10 @@
 									<double key="value">50</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="615770799"/>
 								<int key="scoringType">3</int>
 								<float key="scoringTypeFloat">9</float>
 								<int key="contentType">1</int>
-								<reference key="containingView" ref="615770799"/>
 							</object>
 						</object>
 						<reference key="parent" ref="505772708"/>
@@ -1503,10 +1504,10 @@
 									<double key="value">34</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="472484220"/>
 								<int key="scoringType">9</int>
 								<float key="scoringTypeFloat">40</float>
 								<int key="contentType">1</int>
-								<reference key="containingView" ref="472484220"/>
 							</object>
 							<object class="IBNSLayoutConstraint" id="398152041">
 								<reference key="firstItem" ref="472484220"/>
@@ -1519,10 +1520,10 @@
 									<double key="value">56</double>
 								</object>
 								<float key="priority">1000</float>
+								<reference key="containingView" ref="472484220"/>
 								<int key="scoringType">3</int>
 								<float key="scoringTypeFloat">9</float>
 								<int key="contentType">1</int>
-								<reference key="containingView" ref="472484220"/>
 							</object>
 							<object class="IBNSLayoutConstraint" id="775719842">
 								<reference key="firstItem" ref="472484220"/>
@@ -1535,10 +1536,10 @@
 									<double key="value">230</double>
 								</object>
 								<float key="priority">652</float>
+								<reference key="containingView" ref="472484220"/>
 								<int key="scoringType">9</int>
 								<float key="scoringTypeFloat">40</float>
 								<int key="contentType">1</int>
-								<reference key="containingView" ref="472484220"/>
 							</object>
 						</object>
 						<reference key="parent" ref="505772708"/>
@@ -1894,7 +1895,7 @@
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<object class="NSMutableArray">
+					<object class="NSArray">
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<reference ref="124660203"/>
 						<reference ref="210332473"/>
@@ -1902,9 +1903,9 @@
 						<reference ref="14444973"/>
 						<reference ref="1049409873"/>
 						<reference ref="226440407"/>
-						<reference ref="376417113"/>
 						<reference ref="958031551"/>
 						<reference ref="716515170"/>
+						<reference ref="376417113"/>
 					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<object class="NSMutableArray">
@@ -1981,7 +1982,7 @@
 				<reference key="dict.values" ref="0"/>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">848</int>
+			<int key="maxID">849</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">