Comments (6)
request
(returned fromcreateRequest
) is a String right?- So if you downgrade to v2.3, run this code with no changes, it works?
- Is it possible to upload a reproducible example? Have you tried running AFMotion's requests against other endpoints than whatever
request
is?
from afmotion.
No, actually it create and NSMutableURLRequest
def createRequest(url)
request = NSMutableURLRequest.requestWithURL(NSURL.URLWithString(url),
cachePolicy: NSURLRequestReloadIgnoringLocalCacheData,
timeoutInterval: 300)
apiVersion = NSBundle.mainBundle.objectForInfoDictionaryKey('ApiVersion')
request.setValue(apiVersion, forHTTPHeaderField: 'ApiVersion')
request
end
I think the problem is how the AFMotion::Operation::JSON.for_request closes over the variable operation.
In AFMotion::Operation::HTTP.for_request you initiate the operation variable before closing over it in the succes and failure blocks. Im am no expert on how closures work in ruby though :-)
Reimplementing AFMotion::Operation::JSON.for_request to look more like the HTTP.for_request solves the problem for me:
def json_get_request(request, &callback)
operation = AFJSONRequestOperation.alloc.initWithRequest(request)
operation.setCompletionBlockWithSuccess(
lambda { |operation, responseObject|
result = AFMotion::HTTPResult.new(operation, responseObject, nil)
callback.call(result)
},
failure: lambda {|operation, error|
result = AFMotion::HTTPResult.new(operation, nil, error)
callback.call(result)
}
)
operation
end
from afmotion.
And to answer your questions: :-)
request (returned from createRequest) is a String right?
No, NSMutableRequest
So if you downgrade to v2.3, run this code with no changes, it works?
Yes
Is it possible to upload a reproducible example? Have you tried running AFMotion's requests against other endpoints than whatever request is?
I think i might how found a fix for the problem, see the above comment. If not, I will try and make a reproducible example tonight (CET).
from afmotion.
Ah I see; yeah the code-paths when passing NSURLRequest
s aren't very well tested. If your fix works, definitely submit a pull request! (with a test, preferably :) )
from afmotion.
What is the alternative method? :-)
I'll try and get around making a pull-request (and test ;-)) tonight.
from afmotion.
The alternative method is to passing a String, which will get converted to an NSURLRequest
: https://github.com/usepropeller/afmotion/blob/master/lib/afmotion/http.rb#L7. Somehow I guess this triggers a different memory behavior than simply passing one =\
from afmotion.
Related Issues (20)
- Example app crashes HOT 1
- How to set headers per request? HOT 1
- documentation update: mention OS X HOT 2
- Error for OSX in 2.6: uninitialized constant AFMotion::SessionClientDSL::UIDevice HOT 3
- Upgrade to support AFNetworking 3.0? HOT 4
- Synchronous operation HOT 2
- Can we update to AFNetworking 4.0? HOT 2
- Would really like to see update to AFNetworking 4.0? HOT 2
- http requests from macOS get a malloc error. HOT 1
- AFHTTPSession#delete attempts to call private method HOT 1
- using AFMotion::Client object to fetch image results in error com.alamofire.error.serialization.response HOT 2
- statusCode calling on nil. HOT 2
- Get Headers for JSON response HOT 6
- afmotion just crash HOT 1
- Having problem to upload file when using background session configuration HOT 1
- Unable to satisfy the following requirements: AFNetworking (~> 2.5) HOT 2
- No response on HTTP.get HOT 4
- Any way of getting progress of GET operations? HOT 4
- How would you use AFMotion to download a file (e.g. to Documents directory)? HOT 2
- Crash with AFNetworking 2.6.0 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from afmotion.