2015-04-19 3 views
0

Я сталкиваюсь с очень странными проблемами, которые, похоже, не могут понять, как работать. Когда я отлаживаю приложение на своем устройстве или на симуляторе, я не получаю никаких ошибок. Когда я создаю его для развертывания ad-hoc, приложение выдает исключение и терпит неудачу. Ошибка, которую я получаю в журнале:Ограничение автоопределения вызывает исключение в производстве

[NSISEngine tryToAddConstraintWithMarker:expression:integralizationAdjustment:mutuallyExclusiveConstraints:] 

Мой макет выглядит так по всем моим взглядам.

enter image description here

Моих ограничений растягивать виды на всю ширину экрана, и я создаю динамическое ограничение ширины на взглядах в моем BaseViewController, который получает в наследстве от всех остальных. Я создал своих делегатов для scrollView и contentView для каждого из моих подпрограмм.

class BaseViewController: UIViewController, UITextFieldDelegate { 
var activeField:UITextField? 

@IBOutlet weak var scrollView: UIScrollView? 
@IBOutlet weak var contentView: UIView? 

override func viewDidLoad() { 
    if(self.scrollView != nil) 
    { 
     // Do any additional setup after loading the view. 
     let leftConstraint:NSLayoutConstraint = NSLayoutConstraint(item: self.contentView!, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Left, multiplier: 1.0, constant: 0) 

     self.view.addConstraint(leftConstraint) 

     let rightConstraint:NSLayoutConstraint = NSLayoutConstraint(item: self.contentView!, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Right, multiplier: 1.0, constant: 0) 

     self.view.addConstraint(rightConstraint) 
    } 

    super.viewDidLoad() 
} 

Я более чем счастлив предоставить любую дополнительную информацию, пожалуйста, просто спросите, и я дам вам все, что смогу.

EDIT

Это происходит только на архивацию и работает без подключения к отладчику. Если я отлаживаю выпуск, не проблема.

import UIKit 

class BaseViewController: UIViewController, UITextFieldDelegate { 
var activeField:UITextField? 

@IBOutlet weak var scrollView: UIScrollView! 

override func viewDidLoad() { 

    super.viewDidLoad() 
} 



override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
    self.view.endEditing(true); 
} 

func textFieldShouldReturn(field: UITextField) -> Bool 
{ 
    field.resignFirstResponder() 

    return true 
} 

func textFieldDidBeginEditing(sender: UITextField) 
{ 
    self.activeField = sender 
} 

func textFieldDidEndEditing(sender: UITextField) 
{ 
    self.activeField = nil 
} 

func keyboardDidShow(notification: NSNotification) 
{ 
    if(self.activeField != nil && self.scrollView != nil) { 
     if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { 
      let contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: keyboardSize.height, right: 0) 

      self.scrollView!.contentInset = contentInsets 
      self.scrollView!.scrollIndicatorInsets = contentInsets 

      var aRect = self.view.frame 
      aRect.size.height -= keyboardSize.size.height 

      if(!CGRectContainsPoint(aRect, self.activeField!.frame.origin)) { 
       self.scrollView!.scrollRectToVisible(self.activeField!.frame, animated: true) 
      } 
     }    
    } 
} 

func keyboardWillBeHidden(notification: NSNotification) 
{ 
    if(self.scrollView != nil) { 
     let contentInsets:UIEdgeInsets = UIEdgeInsetsZero 

     self.scrollView!.contentInset = contentInsets 
     self.scrollView!.scrollIndicatorInsets = contentInsets 
    } 
} 
} 

Мои журналы выглядят так, и я не уверен, в чем проблема.

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0 Crashed: 
0 libsystem_c.dylib    0x0000000193c19690 __sfvwrite + 0 
1 libsystem_c.dylib    0x0000000193c20958 __vfprintf + 11352 
2 libsystem_c.dylib    0x0000000193c3b67c __v2printf + 584 
3 libsystem_c.dylib    0x0000000193bce208 _vsnprintf + 300 
4 libsystem_c.dylib    0x0000000193bcec54 snprintf_l + 20 
5 CoreFoundation     0x0000000181cc7018 __CFStringAppendFormatCore + 11580 
6 CoreFoundation     0x0000000181cc42a0 _CFStringCreateWithFormatAndArgumentsAux2 + 244 
7 Foundation      0x0000000182b0a444 -[NSPlaceholderString initWithFormat:locale:arguments:] + 168 
8 Foundation      0x0000000182b0a304 +[NSString stringWithFormat:] + 72 
9 yazda-ios      0x00000001000fcea0 +[NRMAThreadLocalStore currentThreadDictionary] (NRMAThreadLocalStore.m:238) 
10 yazda-ios      0x00000001000fb678 +[NRMAThreadLocalStore threadLocalTrace] (NRMAThreadLocalStore.m:36) 
11 yazda-ios      0x00000001000fc040 +[NRMAThreadLocalStore prepareSameThread:child:withParent:] (NRMAThreadLocalStore.m:126) 
12 yazda-ios      0x00000001000fbac0 +[NRMAThreadLocalStore pushChild:forParent:] (NRMAThreadLocalStore.m:91) 
13 yazda-ios      0x00000001000c92d4 +[NRMATraceController newTraceSetup:parentTrace:] (NRMATraceController.m:310) 
14 yazda-ios      0x00000001000c97d8 +[NRMATraceController enterMethod:fromObject:parentTrace:traceCategory:withTimer:] (NRMATraceController.m:374) 
15 yazda-ios      0x00000001000c95ac +[NRMATraceController enterMethod:fromObject:parentTrace:traceCategory:] (NRMATraceController.m:338) 
16 yazda-ios      0x00000001000b4498 NRMA__beginMethod (NRMAMethodProfiler.m:1051) 
17 yazda-ios      0x00000001000b406c NRMA__voidParamHandler (NRMAMethodProfiler.m:705) 
18 yazda-ios      0x0000000100047f38 yazda_ios.BaseViewController.viewDidLoad (yazda_ios.BaseViewController)() ->() (BaseViewController.swift:32) 
19 yazda-ios      0x00000001000b407c NRMA__voidParamHandler (NRMAMethodProfiler.m:707) 
20 yazda-ios      0x0000000100047f38 yazda_ios.BaseViewController.viewDidLoad (yazda_ios.BaseViewController)() ->() (BaseViewController.swift:32) 
+0

взглядов, которые вы добавляете ограничения программно, вы задали translatesAutoresizingMaskToConstraints к NO? – Cocoadelica

+0

Я сейчас нет. Должен ли я установить это на родительском представлении, в виде прокрутки или в моем представлении содержимого? – jstoup111

+0

ContentView Я думаю – Cocoadelica

ответ

0

Я выяснил свою проблему. По какой-то причине у меня возникла проблема с зависимостями или проблема сборки с вами, мой ViewController унаследовал мой BaseViewController.

По какой-то причине один из методов не возвращался так, как предполагалось, и он взорвал все.

0

Два ограничения находятся в противоречии друг с другими, чтобы вы могли быть направлены так

Смежные вопросы