2014-12-31 9 views
9

Obecnie używam 1.6.1 poprzez CocoaPods (= najnowsza)Błąd Parse.com "Metoda niedozwolona, ​​gdy jest włączone przypinanie." kiedy używam PFQueryTableViewController podklasę

W moim szybkim projekcie umożliwi localdatastore a następnie ustawić identyfikator aplikacji parse. Następnie ładuję storyboard będący podklasą PFQueryTableViewController. Naprawdę nic specjalnego. Ale nadal się zawiesza. Wygląda na awarię w analizie składniowej wewnętrznie na [PFQuery setCachePolicy:]

Co może być nie tak? Jak uruchomić funkcję offline?

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Method not allowed when Pinning is enabled.' 
*** First throw call stack: 
(
    0 CoreFoundation      0x00000001078a0f35 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x0000000107ea3bb7 objc_exception_throw + 45 
    2 CoreFoundation      0x00000001078a0e6d +[NSException raise:format:] + 205 
    3 NMC-Goes       0x00000001044abe44 -[PFQuery setCachePolicy:] + 35 
    4 NMC-Goes       0x00000001043f6e85 -[PFQueryTableViewController queryForTable] + 341 
    5 NMC-Goes       0x00000001043f712e -[PFQueryTableViewController loadObjects:clear:] + 110 
    6 NMC-Goes       0x00000001043f70ba -[PFQueryTableViewController loadObjects] + 58 
    7 NMC-Goes       0x00000001043f69f9 -[PFQueryTableViewController viewDidLoad] + 73 
    8 NMC-Goes       0x000000010425ae1a _TFC8NMC_Goes23TripTableViewController11viewDidLoadfS0_FT_T_ + 74 
    9 NMC-Goes       0x000000010425bca2 _TToFC8NMC_Goes23TripTableViewController11viewDidLoadfS0_FT_T_ + 34 
    10 UIKit        0x00000001063f3a90 -[UIViewController loadViewIfRequired] + 738 
    11 UIKit        0x000000010642206b -[UINavigationController _layoutViewController:] + 44 
    12 UIKit        0x00000001064225b5 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 216 
    13 UIKit        0x00000001064226b4 -[UINavigationController _startTransition:fromViewController:toViewController:] + 92 
    14 UIKit        0x0000000106423487 -[UINavigationController _startDeferredTransitionIfNeeded:] + 523 
    15 UIKit        0x0000000106423f47 -[UINavigationController __viewWillLayoutSubviews] + 43 
    16 UIKit        0x0000000106569509 -[UILayoutContainerView layoutSubviews] + 202 
    17 UIKit        0x0000000106347973 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 521 
    18 QuartzCore       0x0000000105fdbde8 -[CALayer layoutSublayers] + 150 
    19 QuartzCore       0x0000000105fd0a0e _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380 
    20 QuartzCore       0x0000000105fd087e _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 
    21 QuartzCore       0x0000000105f3e63e _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 242 
    22 QuartzCore       0x0000000105f3f74a _ZN2CA11Transaction6commitEv + 390 
    23 UIKit        0x00000001062cc54d -[UIApplication _reportMainSceneUpdateFinished:] + 44 
    24 UIKit        0x00000001062cd238 -[UIApplication _runWithMainScene:transitionContext:completion:] + 2642 
    25 UIKit        0x00000001062cbbf2 -[UIApplication workspaceDidEndTransaction:] + 179 
    26 FrontBoardServices     0x000000010b6a12a3 __31-[FBSSerialQueue performAsync:]_block_invoke + 16 
    27 CoreFoundation      0x00000001077d653c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 
    28 CoreFoundation      0x00000001077cc285 __CFRunLoopDoBlocks + 341 
    29 CoreFoundation      0x00000001077cc045 __CFRunLoopRun + 2389 
    30 CoreFoundation      0x00000001077cb486 CFRunLoopRunSpecific + 470 
    31 UIKit        0x00000001062cb669 -[UIApplication _run] + 413 
    32 UIKit        0x00000001062ce420 UIApplicationMain + 1282 
    33 NMC-Goes       0x000000010427840e top_level_code + 78 
    34 NMC-Goes       0x00000001042784ea main + 42 
    35 libdyld.dylib      0x000000010877a145 start + 1 
    36 ???         0x0000000000000001 0x0 + 1 
) 
+0

Poinformowanie o tym: Parse SDK systemu iOS 1.6.2 jest wyłączony. Może zawierać poprawkę? – fatuhoku

+0

Może być, ale żeby to przetestować, muszę przełączyć się z powrotem na CocoaPods i użyć 1.6.2 stamtąd .... – P5ycH0

Odpowiedz

5

Zrobiłem przykładowy projekt demo problem do Parse.com (patrz błąd: https://developers.facebook.com/bugs/1544122569192939/).

Odpowiedź, którą otrzymałem od Parse, była taka, że ​​szkielet ParseUI od cocoapods jest znany z tego problemu.

Zaproponowali uzyskać ParseUI z https://parse.com/docs/downloads

Postaram i zobaczyć, czy to rozwiąże problem z moim PFQueryTableViewController

EDIT: Dodałem ramy ręcznie i zabrał ją z Podfile . Awaria już nie występuje. Więc błąd jest w ParseUI cocoapod jak parse powiedział mi na developers.facebook.com

+0

, oczekując na wynik Twojej próby. czy mógłbyś to opublikować? z góry dziękuję! – mamarx

+1

Post został zmodyfikowany – P5ycH0

+0

Więc mówisz, że możesz używać polityki pamięci podręcznej z PFQueryTableViewController i Local Datastore? Mimo że dokumenty wyraźnie stwierdzają, że nie można ich używać jednocześnie? – user2510216

10

Nie można używać starych zasad buforowania zapytań, gdy włączone jest przypinanie.

Zobacz tutaj: PFQuery Class Reference - cachePolicy

+1

Złożyłem wczoraj błąd @parse. Czekam, aby zobaczyć, co mogą mi powiedzieć. – P5ycH0

+0

To był mój problem, ma sens. –

+0

Może głupie pytanie: co to jest "przypinanie" w terminach parsowania? Nigdy nie ustawiłem tego wyraźnie i otrzymuję ten błąd. Próbuję pobrać SDK do pobrania, zamiast korzystać z CocoaPods – derpoliuk

4

Też miałem do czynienia z tym samym problemem.
Skomentowałem poniżej linię z klas, która rozszerza PFQueryTableViewController & to działało dla mnie.

if ([self.objects count] == 0) { 
    query.cachePolicy = kPFCachePolicyCacheThenNetworkd; 
} 
+1

tak, awarii nie da się, gdy nie ustawienie 'cachePolicy' na 'zapytanie' – GraehamF

1
// 
// AppDelegate.swift 

import UIKit 
import Parse 
import Bolts 


@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 
    Parse.enableLocalDatastore() 
    Parse.setApplicationId("#######", clientKey: "#####") 
    PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions) 
    return true 
} 

setApplicationID wewnątrz App Delegata zamiast kontrolera rozwiązuje problem dla mnie.

3

Podczas wypróbowywania Parse dostałem dokładny ślad stosu. Ale potem zorientowałem się, że zawarłem ten wiersz kodu w mojej aplikacji.

Cel C

[Parse enableLocalDatastore]; 

I usunąć kod i działa jak czar.

Swift

Usuń:

Parse.enableLocalDatastore() 
+0

Pracował dla mnie! Ale w Swift – lukaivicev

+0

Co oznacza parametr Parse.enableLocalDatastore()? –

0

można spróbować tego kodu w systemie SWIFT.

if [self.objects].count == 0 { 

     query?.cachePolicy = PFCachePolicy.CacheThenNetwork 

    } 
0

Screen Shot

I dodaje import 'śruby' poniżej:

import UIKit 

import Parse 

Jak pokazano na zrzut ekranu.

To rozwiązało problem.