小编nbu*_*urk的帖子

如何在Swift中获得数学PI常数

我试图找到一种方法在我的Swift代码中包含PI常量.我已经在另一个答案中找到了帮助import Darwin,我知道这些答案可以让我访问C函数.

我还检查了Math包裹,Darwin并发现了以下声明:

var M_PI: Double { get } /* pi */

所以,我假设有一种方法在代码中使用PI,我只是不知道如何 ...

math darwin swift

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

如何查找UILabel的实际行数?

在用a 和a 初始化之后,如何找到a的实际行数?我已将其属性设置为,因此它将扩展到需要许多行.但是,我如何才能找到它设置后最终获得了多少行?UILabeltextfontnumberOfLines0text

我发现了类似的问题,但似乎没有一个提供简洁的答案,在我看来,在没有任何开销的情况下得到它一定非常容易,boundingRectWithSize或者sizeWithFont......

uilabel ios

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

如何使用CMake将外部库(boost)包含到CLion C++项目中?

我有以下C++开发设置:

  • OS X Yosemite
  • CLion 140.2310.6(一个跨平台的C/C++ - 由JetBrains CMake用作构建系统的IDE )
  • boost通过安装brew install boost/usr/local/Cellar/boost/

现在,我的目标是设置一个简单的项目并包含boost库.我只定义了一个看起来像这样的test.cpp文件:

#include <iostream>
#include <boost>

using namespace std;

int test() {
    cout << "Hello, World!" << endl;
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

我的CMakeLists.txt文件如下所示:

cmake_minimum_required(VERSION 2.8.4) 
project(MyProject)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

include_directories("/usr/local/Cellar/boost/1.57.0/include/boost")

set(SOURCE_FILES main.cpp ./test.cpp)
add_executable(MyProject ${SOURCE_FILES}) 
Run Code Online (Sandbox Code Playgroud)

当我构建项目时,我收到以下错误:

/Users/nburk/Documents/uni/master/master_thesis/MyProject/test.cpp:2:10:致命错误:找不到'boost'文件

make [3]:***[CMakeFiles/MyProject.dir/test.cpp.o]错误1 make [2]:***[CMakeFiles/MyProject.dir/all]错误2 make [1]:***[CMakeFiles/MyProject.dir/rule]错误2 make:***[MyProject]错误2

我在这里和那里调整路径,并使用add_librarytarget_link_libraries,没有一个使项目成功构建.

有人能指出正确的方向如何确保我可以boost在我的CLion C++项目中包含功能吗?

更新: 感谢@ Waxo的回答我在我的CMakeLists.txt …

c++ boost cmake clion

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

使用`...`从现有对象创建新对象时出错:在此环境中,assign的源必须是一个对象

在我的React Native应用程序中,我遇到的情况是组件的一个特定子项,我render应该收到绿色或红色borderColor.

现在,我不想在我styles的这两种情况下创建两个单独的条目,因为它们只在borderColor属性上有所不同.

我的想法是从我styles喜欢的那些中得到合适的样式对象:

const styles = StyleSheet.create({
  amountSection: {
    borderWidth: 1,
    flex: 1,
    flexDirection: 'row',
    borderRadius: 3
  }
})

render() {
  const amountBorderColor = this.state.isClaim ? 'green' : 'red'
  const amountStyles = {
    ...styles.amountSection,
    borderColor: amountBorderColor
  }

  return (
    // ... apply amountStyles at appropriate component
  )
}
Run Code Online (Sandbox Code Playgroud)

但是,此代码会出现以下错误:

未处理的JS异常:在此环境中,assign的源必须是一个对象.此错误是性能优化而不是规范兼容.

显然,错误是在我定义的行上命中的amountStyles.谁知道为什么会这样?我的语法有问题吗?我使用...表示法从现有对象创建一个新对象,并为其添加一些其他属性.

javascript reactjs react-native

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

何时使用takeUnretainedValue()或takeRetainedValue()来检索Swift中的非托管对象?

根据使用Swift与Cocoa和Objective-C,您可以使用takeUnretainedValue()takeRetainedValue()告诉Swift如何管理对象的内存,如下所示:

func StringByAddingTwoStrings(CFString!, CFString!) -> Unmanaged<CFString>!
Run Code Online (Sandbox Code Playgroud)

我何时必须使用takeUnretainedValue()takeRetainedValue()

当我使用ARC时,它总是takeUnretainedValue()吗?

iphone objective-c ios swift

32
推荐指数
2
解决办法
8279
查看次数

滚动到ScrollView的顶部

有没有办法滚动到ScrollView按钮按下的顶部?

我可以强制render整个页面,但这看起来非常低效.

react-native

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

C++中的指针存储在堆栈中还是堆中?

我试图理解堆栈内存之间的区别,这个问题在SO上以及这个解释做了很好的解释基础知识.

然而,在第二个解释中,我遇到了一个我有一个具体问题的例子,例子如下:

堆分配示例

据说这个对象m是在堆上分配的,我只是想知道这是不是完整的故事.根据我的理解,对象本身确实在堆上分配,因为new关键字已用于其实例化.

但是,指向对象的指针m是不是在堆栈上分配的同一时间?否则,如何访问对象本身,当然它位于堆中.我觉得为了完整起见,本教程中应该提到这一点,留下它会给我带来一些混乱,所以我希望有人能够清楚地告诉我,我对我的理解是对的应该基本上有两个陈述,不得不说:

1. m已经在堆栈上分配了一个指向对象的指针

2.对象m本身(因此它携带的数据以及对其方法的访问)已在堆上分配

c++ pointers memory-management

22
推荐指数
3
解决办法
3万
查看次数

阻止UITableView接收两个触摸(嵌套的弹出动画可能导致导航栏损坏)

UITableView在我的应用程序中使用了一个,当点击时,它将用于UINavigationController将另一个视图控制器推送到导航控制器的视图控制器堆栈.

然而,当tableview上的一个单元格被双重绑定时,tableView:didSelectRowAtIndexPath:会被调用两次,导致导航控制器将两个新的viewcontroller推入堆栈并导致以下控制台输出:

nested pop animation can result in corrupted navigation bar
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
Run Code Online (Sandbox Code Playgroud)

这不是一个非常重要的问题,因为用户不太可能对表视图单元格进行双击,但是我想知道是否有一种优雅的解决方案可以防止这种误导?(可能检查导航控制器topViewController并随后决定是否pushViewController:应该实际执行推送方法?).

uitableview ios

13
推荐指数
4
解决办法
8345
查看次数

如何在iOS 7和iOS 8上正确自定义UITabBar和UITabBarItem?

我在谷歌搜索这么多,但我找不到一个直接巩固的答案.

我想自定义我的UITabBarController:

  1. UITabBar本身就是黑色的
  2. 项目标题的文本颜色在非突出显示状态下为白色
  3. 项目标题的文本颜色在突出显示状态下为红色
  4. 在选项卡栏中使用多色图标

1. UITabBar变黑

我猜我需要使用UIAppearanceAPI,实际上我可以UITbarBar使用以下方式将黑色变为:[[UITabBar appearance] setBarTintColor:[UIColor blackColor]];.

2.和3.修改项目标题的颜色

然而,文字项目的颜色似乎没有做我想要的,在谷歌搜索后,以下解决方案对我有意义,但它只将非突出显示状态更改为白色,突出显示保持白色...

NSDictionary *titleAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
[[UITabBarItem appearance] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];

UIColor *titleHighlightedColor = [UIColor redColor]; 
NSDictionary *highlightedTitleAttributes = @{NSForegroundColorAttributeName : titleHighlightedColor};
[[UITabBarItem appearance] setTitleTextAttributes:highlightedTitleAttributes forState:UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)

4.多彩多姿的物品

关于五彩图标,到目前为止的方法是简单地设置故事板中的图标,如下所示:

在此输入图像描述

但这并不是我想要的,它只在选择项目时以灰色显示整个图标.选择项目后,图标将完全消失.

这是原始图标:

在此输入图像描述

这是选择项目时的外观:

在此输入图像描述

在这里,它是在选定的陈述,如上所述,图标完全消失:

在此输入图像描述

所以,我的问题是我能够达到上述要求的准确程度.我目前缺少什么?我在代码中做的所有事情都比在Storyboard中做得更好吗?

注意:我的目标是iOS版本大于7.0,因此如果iOS 7和iOS 8之间的行为不同,请包含任何特定于版本的信息.

objective-c uitabbarcontroller uitabbaritem uitabbar ios

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

我可以在iTunes Connect中提交新的应用程序版本而不取消前面的"正在等待开发人员发布"吗?

我在iTunes Connect中有一个应用程序,其状态为待定开发人员版本,即已经Apple审核小组批准,现在我可以随时手动发布它.(注意,这是最初的启动,即App Store中目前没有该应用程序的版本).

我现在的问题是,如果可以在iTunes Connect中提交新版本而不取消已经批准的版本,通过取消我正好意味着失去将其发布到App Store的机会.

itunesconnect ios

13
推荐指数
1
解决办法
8647
查看次数