小编Dim*_*ima的帖子

如果启用了模块,则tgmath.h不起作用

在处理arm64时,我考虑使用它tgmath.h来处理CGFloat typedef float/double混乱.

这个答案对如何使用它有很好的描述,除了它对我来说根本不起作用.无论如何,我的代码仍在调用math.h函数.

在花了一些时间查看所有项目编译器设置后,我发现禁用"模块"功能(@import vs #import - iOS 7)使一切正常.更具体地说,在项目设置中的选项被称为Enable Modules(C and Objective-C)Apple LLVM 5.1 - Language - Modules下拉列表中.

要查看此问题的快速示例,请下载使用tgmath的项目,例如MBProgressHUD,并查看启用模块项目设置时会发生什么.该tgmath.h呼叫会被替换成普通math.h电话.

我的问题是:

  1. 为什么模块会阻止tgmath正确导入?

  2. 有没有办法解决它并同时使用tgmath和模块?我仍然希望能够使用它们.

macos objective-c llvm-clang ios

69
推荐指数
1
解决办法
2878
查看次数

取消交互式UINavigationController pop手势不会调用UINavigationControllerDelegate方法

如果你在a中拖动UIViewController以开始a 中的交互式弹出过渡UINavigationController,UIViewController则当前的一个已经viewWillAppear:调用,然后是UINavigationControllerDelegate方法navigationController:willShowViewController:animated:

如果取消的过渡,既viewWillAppear:viewDidAppear:预期得到所谓的顶视图控制器.

然而,无论是委托方法navigationController:willShowViewController:animated:navigationController:didShowViewController:animated:调用的.

考虑到调用UIViewController视图生命周期方法,似乎至少应调用其中一个或两个.我想知道这是故意还是错误UIViewController.

我真正需要的是能够看到在我的UINavigationController子类或其中取消交互式弹出的时间UINavigationController.有明显的方法吗?

编辑

我仍在寻找解决方案,但我想提一下,我已将此问题报告为Apple的错误.查看文档,没有理由不调用这些委托方法,特别是考虑到调用等效的视图生命周期方法.

EDIT2

我的雷达车票(16823313)今天(2015年5月21日)关闭并按预定标记.:(

Engineering已根据以下信息确定此问题的行为符合预期:

这实际上是正确的行为.从B - > A发生的导航转换,如果你在转换中取消它,你将不会得到didShowViewController:方法.取消这种转变不应被视为从A - > B过渡,因为你从未真正到过A.

view [Will/Did]出现仍应按预期调用.

这种情况相当糟糕,因为它是违反直觉的,但我的答案中的解决方法在可预见的未来应该可以正常工作,至少在我的用例中是这样.

objective-c uikit uinavigationcontroller ios

20
推荐指数
2
解决办法
5089
查看次数

不推荐使用ABAddressBookCreate

我正在创建一个将联系人保存到地址簿的应用程序,但是当我将ABAddressBookCreate用于我的代码时,它会显示为警告.我在iOS 7编码.

我的问题是,iOS 7中ABAddressBookCreate的替代品是什么.

任何帮助将不胜感激.谢谢.

objective-c abaddressbook ios7

12
推荐指数
2
解决办法
1万
查看次数

为UIControlStateHighlighted定制UISearchBarIconClear不起作用

我有一个UISearchBar,我为UiControlStateNormal设置了一个自定义的UISearchBarIconClear.

[mySearchBar setImage:myImage forSearchBarIcon:UISearchBarIconClear state:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

这个部分可以正常工作但不幸的是,当点击清除按钮时,它会从我设置的图像变为原始的默认灰色按钮.

我已经尝试为UIControlStateHighlighted设置图像,但显然这不起作用.

文件实际上规定

有效状态是UIControlStateNormal和UIControlStateDisabled.

如果您无法将其设置为突出显示状态,那么为默认状态设置自定义按钮的重点是什么?我错过了什么吗?任何想法或变通方法都表示赞赏,谢谢!

objective-c uikit uisearchbar ios

7
推荐指数
2
解决办法
1831
查看次数

Swift的过滤方法是否稳定?

当我在Swift中过滤数组时,我可以期望结果与原始数据的顺序相同吗?例如,我可以指望:

[3, 1, 4, 1, 5, 9, 2, 7].filter{$0 > 4}
Run Code Online (Sandbox Code Playgroud)

总是回来:

[5, 9, 7]
Run Code Online (Sandbox Code Playgroud)

arrays swift

7
推荐指数
1
解决办法
762
查看次数

在Rails 4.0上安装Ruby时出错 - atomic_reference.c错误71

我在尝试安装rails(或更具体地说,原子)时遇到错误.

Building native extensions.  This could take a while... ERROR:  Error installing rails:     ERROR: Failed to build gem native extension.

    /Users/dima/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb creating Makefile

make compiling atomic_reference.c atomic_reference.c:50:9: warning: implicit declaration of function 'OSAtomicCompareAndSwap64' is invalid in C99 [-Wimplicit-function-declaration]
    if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) {
        ^ 1 warning generated. linking shared-object atomic_reference.bundle

make install /usr/bin/install -c -m 0755 atomic_reference.bundle /Users/dima/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/atomic-1.1.10/lib/Users/dima/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/x86_64-darwin12.4.0 install: /Users/dima/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/atomic-1.1.10/lib/Users/dima/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/x86_64-darwin12.4.0: No such file or directory make: *** [install-so] Error 71


Gem files will remain installed in /Users/dima/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/atomic-1.1.10 for inspection. …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails railstutorial.org

6
推荐指数
1
解决办法
6345
查看次数

在Xcode的"帐户"选项卡中刷新后,配置文件无效

在这里不幸令人沮丧的循环.这个问题大约在一个月前开始在Xcode 5中发生,我刚刚处理它希望它可以消除Xcode 6,但我仍然看到它发生在Xcode 6的当前App Store版本中.

访问Xcode中的"帐户"选项卡,然后点击一个帐户并单击"刷新"按钮下载该用户的配置文件,而不是它们全部失效.然后我必须进入开发人员门户并手动重新生成每个门户.获取有效配置文件的唯一方法是从开发人员门户手动将每个配置文件下载到我们的每台机器上,这是不理想的.有没有理由发生这种情况,我错过了?我以前从未遇到过这个问题.如果重要,这些不是默认的团队档案,我们制作和管理自己的.

xcode ios provisioning-profile ios-provisioning xcode6

6
推荐指数
1
解决办法
467
查看次数

在某些情况下尝试自动调整大小时,键盘扩展在iOS 10中会丢失高度

您可以在此下载一个示例项目来演示以下问题:https: //github.com/DimaVartanian/keyboard-extension-height-bug

当创建一个键盘的扩展,而不是指定一个具体的高度为它的组成部分,但不是将它们固定到视图/ inputView于是在理论上系统将确定基于环境和方向的高度,在这样的高度,而不是变成0,某些情况下,键盘被压碎(除了具有混凝土高度的任何东西,例如自我尺寸的标签或按钮).

这似乎只发生在iOS 10上.在iOS 9上,子视图正确调整大小以适应默认的自动键盘高度.

这可以表现出几个场景,这个项目演示了一个基本的场景.它从基本的键盘扩展模板开始,带有默认的"下一个键盘"按钮和它附带的2个大小限制:

self.nextKeyboardButton.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
self.nextKeyboardButton.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)

接下来,我们创建一个其他视图,我们想要填充superview的空间,而不为自己定义具体的大小:

let anotherView = UIView()
anotherView.backgroundColor = UIColor.red
anotherView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(anotherView)
anotherView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
anotherView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
anotherView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)

现在,假设我们只想将这个新视图锚定到键盘超级视图的底部.我们会做的事情如下:

anotherView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)

结果如下:

iOS 9 在此输入图像描述

iOS 10 在此输入图像描述

这种布局正是我们所期望的.现在,让我们将新视图锚定到下一个键盘按钮的顶部.我们摆脱了刚刚添加的约束并替换它

anotherView.bottomAnchor.constraint(equalTo: self.nextKeyboardButton.topAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)

逻辑上,结果高度应该相同(由系统确定)

结果现在是这样的:

iOS 9 在此输入图像描述

iOS 10 在此输入图像描述

在iOS 9上,它的行为符合预期,但在iOS 10上,灵活的高度视图大小调整为0,剩下的就是固定高度按钮.

没有关于冲突约束的消息.我试图找出可能导致这种情况的原因以及为什么它只会发生在iOS 10上.

cocoa-touch ios autolayout ios-keyboard-extension ios10

6
推荐指数
1
解决办法
1074
查看次数

对于具有lineSpacing和多种颜色的单行文本,UILabel大小不正确

我很确定这实际上是一个UIKit错误,但想得到一些输入,看看我是否在这里遗漏了一些愚蠢的东西.

这是我的代码:

// single line with modified line spacing and 2 colors - broken, line spacing is added to the bottom!
UILabel *brokenLabel = [[UILabel alloc] init];
brokenLabel.backgroundColor = [UIColor greenColor];

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"Just some text"];

[attributedString addAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]} range:[attributedString.string rangeOfString:@"text"]];

attributedString = attributedStringFromAttributedStringWithLineSpacing(attributedString, 20, NSTextAlignmentCenter);

brokenLabel.attributedText = attributedString;
[brokenLabel sizeToFit];
brokenLabel.frame = CGRectOffset(brokenLabel.frame, 50, 100);
[self.view addSubview:brokenLabel];
// end

// single line with modified line spacing and 1 color - correct
UILabel *workingLabel = …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch uikit nsattributedstring uilabel ios

5
推荐指数
1
解决办法
1564
查看次数

如何在swift中将Int转换为int?

我有一个名为Int的类型的变量

var number = value!.integerValue as Int
Run Code Online (Sandbox Code Playgroud)

现在我必须使用该值创建一个NSNumber对象.

我正在尝试使用此构造函数

value = NSNumber(int: number)
Run Code Online (Sandbox Code Playgroud)

,但它不起作用.

它期望原始类型int,而不是Int我猜.

有谁知道怎么解决这个问题?

谢谢!

ios swift

5
推荐指数
1
解决办法
1万
查看次数