Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Objective-C C
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


1, verification of weibo JSON api - 00_NewVerify
2, As I can't use XCode 4.0 workspace to manage the item with dependencies, so use my XCode 3.2.6 with customized reference dependencies to import sina SDK into usages and header file building.

Regarding code sharing in XCode with source code link, 
check with 
-> also will be included in orlando's blog :
And zerg_xcode [toolkit by Cosstan to copy source codes inside]

3, OCUnit framework in XCode -> write group objective-c to test sina api

-> add unit test bundle to "target" builder
-> add source code ***.m into unit test bundle for "compile source"
-> add customized executable file for *.octest into Executable categories

Then configuration for "executable test case", OK, core here-> 
How the core triggered?
$ find /Developer -name otest
orlando-dings-Mac-mini:~ orlando$ find /Developer -name otest
--> /Developer/Tools/otest <--

$ get error information when directly running executable file in xcode project [exited with status faile 5]
Why? execute in command line, 

2011-12-01 23:12:32.189 otest[500:903] The test bundle at /Users/orlando/Documents/06_weiboApp/FriendsAnalysisForSinaBlog2011/01_JSONAPI/build/Debug/01_JSONAPITest.octest could not be loaded because its Objective-C runtime information does not match the runtime information required by the test rig.  
This is likely because the test rig is being run with Objective-C garbage collection enabled, but the test bundle does not support Objective-C garbage collection.  To disable Objective-C garbage collection for the test rig, run it in an environment with the OBJC_DISABLE_GC environment variable set to YES.
2011-12-01 23:12:32.199 otest[502:203] *** NSTask: Task create for path '/Users/orlando/Documents/06_weiboApp/FriendsAnalysisForSinaBlog2011/01_JSONAPI/build/Debug/01_JSONAPITest.octest/Contents/MacOS/01_JSONAPITest' failed: 22, "Invalid argument".  Terminating temporary process.

--> define OBJC_DISABLE_GC = YES <--
Debugging then see breakpoints active

* debugging issue - Argument list too long: recursive header expansion failed at /Developer/Documentation/DocSets/

--> reason: 
library search path include ${inherited}, then argument become too long for item
for ${inherited} rather than user defined library search path, shoudln't be recurisve.

* organization -> xcode couldn't support dynlib compiling directly, see the xcodeproject configuration file for compiling [do we need to use source code for dynlib?], refer to

* breakpoints -> shortcut

4, Weibo SDK includes a lot of UI stuffing, this may lead to UI and framework fixing, Now just use JSON api to construct pure API layer, add procotol for callback functional [or java event list -> xcode extensiblity]

* for json parser/writer framework, stig provide the latest branch in github on xcode 4.2 based on ARC changed properties, so 
stick to 3.04 version and update static libraries with 3.04 source code.
SBJSON.h, SBjson.h is different as one from stig framework, another from sina api. 
[decision: drop sina api, directly write json parser via grahpic algorithm to archive general framework purpose, sina api still needs to OAuth operation, then UI logic won't be isolated from API framework layer.]

* NSURLConnectionDelegate should be implemeneted following the rule of thread

Note that all these will be called on the thread that started the asynchronous load operation on the associated NSURLConnection object.

5, Http GET/POST Operation has been wrappered inside Asynchornous Thread class.
Fixed issue - http post change the authenication header, previously used constant NSString to implement. Now stick to another implementation online with NSMutableString inside for both.
Next Step
 -> NSOperation & NSQueue to wrapper Asynchronus Model
 -> Person Graphic Algorithm Implementation

6, Change Weibo SDK header file source to new location...
Something went wrong with that request. Please try again.