2014-12-27 5 views
6

Quando chiamo determinati metodi che contengono richieste GET utilizzando AFHTTPRequestOperation Manager, a volte richiama erroneamente un altro blocco/chiusura di un'altra richiesta GET utilizzando Operation Manager.Swift: opzionali non confezionati in chiusura in AF Chiamata in rete

Questa è la linea 3 nel log degli errori di seguito:

partial apply forwarder for reabstraction thunk helper from @callee_owned (@in (Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, 
Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>)) -> (@out()) to @callee_owned (@owned Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, 
@owned Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>) -> (@unowned()) (AppDelegate.swift:615) 

e il 2 ° riga:

reabstraction thunk helper from @callee_owned (@owned Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, 
@owned Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>) -> (@unowned()) to @callee_owned (@in (Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, 
Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>)) -> (@out()) with unmangled suffix "_constprop0" (GroupsDataSource.swift:365) 

Ecco il log degli errori che ottengo.

Crashed: com.apple.main-thread 
EXC_BREAKPOINT UNKNOWN at 0x0000000100147e48 

Thread : Crashed: com.apple.main-thread 
0 Kickit       0x0000000100147e48 Kickit.GroupsDataSource.(logoutForce (Kickit.GroupsDataSource) ->() ->()).(closure #1) (GroupsDataSource.swift:809) 
1 Kickit       0x00000001001474dc Kickit.GroupsDataSource.(logoutForce (Kickit.GroupsDataSource) ->() ->()).(closure #1) (GroupsDataSource.swift:823) 
2 Kickit       0x0000000100143074 reabstraction thunk helper from @callee_owned (@owned Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, @owned Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>) -> (@unowned()) to @callee_owned (@in (Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>)) -> (@out()) with unmangled suffix "_constprop0" (GroupsDataSource.swift:365) 
3 Kickit       0x0000000100193934 partial apply forwarder for reabstraction thunk helper from @callee_owned (@in (Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>)) -> (@out()) to @callee_owned (@owned Swift.ImplicitlyUnwrappedOptional<ObjectiveC.AFHTTPRequestOperation>, @owned Swift.ImplicitlyUnwrappedOptional<Swift.AnyObject>) -> (@unowned()) (AppDelegate.swift:615) 
4 libdispatch.dylib    0x00000001970253ac _dispatch_call_block_and_release + 24 
5 libdispatch.dylib    0x000000019702536c _dispatch_client_callout + 16 
6 libdispatch.dylib    0x0000000197029980 _dispatch_main_queue_callback_4CF + 932 
7 CoreFoundation     0x0000000186241fa4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 
8 CoreFoundation     0x000000018624004c __CFRunLoopRun + 1492 
9 CoreFoundation     0x000000018616d0a4 CFRunLoopRunSpecific + 396 
10 GraphicsServices    0x000000018f30f5a4 GSEventRunModal + 168 
11 UIKit       0x000000018aaa23c0 UIApplicationMain + 1488 
12 Kickit       0x0000000100193ca4 main (AppDelegate.swift:15) 
13 libdyld.dylib     0x000000019704ea08 start + 4 

Il blocco successo ecco AppDelegate: 615. GroupsDataSource: 365 e GroupsDataSource: 809 sono similmente strutturati.

let manager = AFHTTPRequestOperationManager() 

var user_id : Int = NSUserDefaults.standardUserDefaults().objectForKey("user_id") as Int 

if (justSeenEventIDs.count > 0){ 
    manager.GET(serverURL+"users/seen_events.json", 
     parameters: ["user_id" : userID()!, "event_ids" : justSeenEventIDs], 
     success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) -> Void in 

      println("JSON: " + responseObject.description) 
      if (responseObject.isKindOfClass(NSDictionary)){ 


      } 


     }, 
     failure: { (operation: AFHTTPRequestOperation!,error: NSError!) -> Void in 
      println("Error: " + error.localizedDescription + " code: " + "\(error.code)") 
     }) 
    } 
} 

risposta

-1

Ho finito per utilizzare Alamofire anziché AFNetworking e questo ha finito per risolvere il mio problema. Scritto dal creatore di AFNetworking github.com/Alamofire/Alamofire