小编Eri*_*ner的帖子

Go:在switch类型中将任何int值转换为int64

我经常有一种情况,我希望int(任何类型int/int8/16/32/64),并使用类型开关检查它

switch t := v.(type) {
  case int, int8, int16, int32, int64:
    // cast to int64
  case uint, uint8, uint16, uint32, uint64:
    // cast to uint64
}
Run Code Online (Sandbox Code Playgroud)

现在我不能使用直接强制转换,因为t在这种情况下将是类型interface{}.case对于每种整数类型,我真的必须将其拆分为s吗?

我知道我可以通过反射使用reflect.ValueOf(v).Int(),但不应该有更好的(不那么冗长)的方式吗?

更新:

提起了一个问题,Rob建议reflect在这种情况下使用.

casting go

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

MAS:代码签名身份私钥

我从开发门户删除了所有开发和安装程序证书,创建了新的CSR并生成了新的Application和Installer证书.

现在,我即将将应用程序分发给MAS,并且不断出现此错误:

"Name" is a valid identity. However, the private key for the associated package
identity "Name" is not installed on this Mac.

Developer Profiles from a different Mac can be imported.
Run Code Online (Sandbox Code Playgroud)

这让我很困惑,因为私钥在系统上,我怎么能在没有它们的情况下生成证书呢?

在此输入图像描述

xcode code-signing

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

Objective-C类前缀

命名ObjC课程你有什么偏好?我有点不确定什么是最合理的方法,所以听听其他一些意见会很高兴.

Apple建议为可可类添加前缀,因为ObjC不支持名称空间.谷歌ObjC风格指南(我主要针对的是)取消它们,除非你扩展(类别,类扩展等)一个NSClass.

我的偏好不是为类添加前缀,因为我也认为这是浪费字母而不会导致原因.它应该仅在框架代码中用于表示此类属于它而不是应用程序的类,但我不会在应用程序级别上使用它.

什么是你的,最重要的是为什么?


我的结论(请随意添加您的意见以做出最明智的决定)


应用程序级别:

  • 我决定使用1个字母前缀(如CMyClass).主要原因是文件组织目的(例如,在Finder中更好的分组),并且它仍然使用较少的类名字母而不是长度为2或更长的前缀.
    • 对可可类使用前缀' C '(例如CAudioController.h)
    • 对实用程序集合使用前缀" U "(例如,纯C USystemAudio.h)

框架级别类:

  • 带有2个或更多自定义字母的前缀类,最好是唯一的,因为它可能会与其他应用程序共享.

分类

  • 类别命名如下: NSClassName+ExtensionPurpose

cocoa coding-style objective-c

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

使用指定的客户端密钥设计API

我正在设计一个JSON Web API,并希望通过唯一ID来区分客户端,以便监控使用情况并阻止恶意/行为不端的客户端.API不是封装在JavaScript库中,也不是Web应用程序独有的,任何客户端类型都可以使用它(桌面,电话等).

问题是,Web应用程序(官方网站)也是API本身的客户端,因此必须公开其API密钥.因此,某些用户可以从页面上的JavaScript中提取密钥并使用它,而不是生成自己的密钥.

是否有可能以某种更好/更聪明的设计选择来某种方式缓解这个问题,或者我是否必须忍受这样一个事实:任何恶意使用API​​的人都可以利用这个?

我可以100%控制前端应用程序(EmberJS)和后端服务器(Go),因此可以建议任何更改.

  • 我正在使用每个会话/ ip的速率限制为该情况添加额外的保护层
  • twitter.com页面曾经也是自己API的客户端.他们是如何解决的?

注意:问题不在于身份验证或安全性本身,而是如何要求第三方用户另外使用API​​密钥(!)进行身份验证!

security api web-services api-design web-applications

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

飞镖:默认gitignore?

我创建了一个新应用程序,Dart编辑器(M4)创建了大量文件和文件夹.现在我不确定我能安全放入gitignore.这是树:

app/.buildlog
app/build.dart
app/packages/analyzer_experimental
app/packages/args
app/packages/browser
app/packages/csslib
app/packages/html5lib
app/packages/js
app/packages/logging
app/packages/meta
app/packages/pathos
app/packages/source_maps
app/packages/unittest
app/packages/web_ui
app/pubspec.lock
app/pubspec.yaml
app/web/app.css
app/web/app.dart
app/web/app.html
app/web/out/app.css
app/web/out/app.dart
app/web/out/app.dart.map
app/web/out/app.html
app/web/out/app.html_bootstrap.dart
app/web/out/packages
app/web/out/xclickcounter.dart
app/web/out/xclickcounter.dart.map
app/web/packages
app/web/xclickcounter.dart
app/web/xclickcounter.html
Run Code Online (Sandbox Code Playgroud)

我假设可以忽略以下文件:

app/.buildlog
app/packages/*
app/web/out/*
app/web/packages
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

dart

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

调整输入大小以适合其内容

我不关心特定的技术,它可能是JS,CSS甚至是一些不标准和邪恶的html属性.input如果用户键入右边框,我只想让它变得更大.

html javascript css

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

单击NSView

我有一个NSView包含多个子视图.其中一个子视图是透明的,并且位于顶部.

我需要能够点击这个视图到下面的子视图(以便下面的视图获得第一响应者状态),但所有鼠标事件都卡在顶视图上(alpha是1,因为我在其中绘制内容 - 所以它应该只点击透明区域).

我实际上期望这个工作,因为通常情况下.怎么了?

cocoa objective-c

11
推荐指数
1
解决办法
7265
查看次数

控制Clang警告

我已经将SQLite合并源编译到我的iOS项目中,并clang在此行上发出警告

mask = (sizeof(long)==8) ? LARGEST_INT64 : 0x7fffffff;
Run Code Online (Sandbox Code Playgroud)

带有以下警告:

Implicit conversion from 'long long' to 'long' changes value from
9223372036854775807 to -1
[warn_impcast_integer_precision_constant]
Run Code Online (Sandbox Code Playgroud)

我已经启用-fdiagnostics-show-name了显示名称(warn_impcast_integer_precision_constant).

我当然不想改变SQLite源代码中的任何内容,因为我不想引入不可预见的副作用,所以我想为这一行禁用这个特定的警告.警告肯定是有效的,但无论如何都不能在sizeof检查到位时发生.

为了使此过程可以重现其他警告和诊断,有没有一种方法可以找出特定的警告类并禁用它们一行?不幸的是,我在所谓的clang/llvm"文档"中找不到任何东西.

llvm clang

11
推荐指数
1
解决办法
6310
查看次数

如何找出哪个UIScrollView干扰了scrollsToTop?

我有几个带有一个或多个scrollview的视图控制器.虽然我已经scrollsToTop在具有多个滚动视图的视图控制器中显式设置了标志,但是当我点击状态栏时,一些滚动视图拒绝向上滚动.

在推动另一个视图控制器并弹出它后,手势有时会在之前没有的视图中工作.

这很混乱,我只是不知道问题是什么.如何有效地调试此问题?是否有状态栏点击的全局(私人)通知,以便我可以手动滚动视图?

iphone cocoa-touch ios ios5

11
推荐指数
1
解决办法
2094
查看次数

计算Swift 3中的范围计数

显然在Swift 3之前,Range<String.Index>有一个count属性.在迁移到Swift 3时,我注意到这个count属性现在已经消失了.如何计算String.IndexSwift 3中2 es 之间的距离?

swift swift3

10
推荐指数
1
解决办法
3695
查看次数