我似乎喜欢设计新的,UIViews并UIControls实现自己的-drawRect:方法.这对我来说很有用,特别是UIViews在Interface Builder中使用时.
但是在Interface Builder中编写它们很烦人,因为它们只是显示为无聊的普通矩形.
如果视图实际上将自己呈现为内置控件那么会很棒.
有没有什么方法可以构建我的项目,以便Interface Builder将呈现我的自定义视图?
我需要将公里数转换为弧度.这是正确的公式吗?在MongoDB中我需要radars for nearsphere.
如果我需要将5公里转换为弧度,我会这样做:
5/6371
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果(看起来是否正确):
0.000784806153
Run Code Online (Sandbox Code Playgroud)
UPDATE
这不是一个数学问题,我真的需要知道我是否正在从公里到弧度进行正确的计算,以便能够使用MongoDB进行地理空间查询.
我有一个习惯NSView(它是众多的一个,他们都生活在一个NSCollectionView- 我不认为这是相关的,但谁知道).当我点击视图时,我希望它改变它的选择状态(并相应地重绘自己); 当我双击视图时,我希望它为刚刚双击的对象弹出一个更大的预览窗口.
我的第一次看起来像这样:
- (void)mouseUp: (NSEvent *)theEvent {
if ([theEvent clickCount] == 1) [model setIsSelected: ![model isSelected]];
else if ([theEvent clickCount] == 2) if ([model hasBeenDownloaded]) [mainWindowController showPreviewWindowForPicture:model];
}
Run Code Online (Sandbox Code Playgroud)
哪个大多数工作正常.除此之外,当我双击视图时,选择状态会更改并弹出窗口.这不是我想要的.
看来我有两个选择.我可以在响应双击时恢复选择状态(撤消错误的单击)或者我可以尝试某种NSTimer解决方案以在响应单击之前构建延迟.换句话说,我可以确保在更改选择状态之前没有第二次单击.
这似乎更优雅,所以这是我最初采用的方法.我从谷歌找到的唯一真正指导是在一个未命名的网站上,其名称中带有连字符.这种方法主要适用于一个重要的警告.
突出的问题是"我NSTimer要等多久?".未命名的网站建议使用Carbon功能GetDblTime().除了在64位应用程序中无法使用之外,我能找到的唯一文档说它正在返回时钟滴答.我不知道如何将它们转换为秒NSTimer.
那么这里的"正确"答案是什么?摸索着GetDblTime()?双击"撤消"选择?我无法弄清楚可可惯用法.
我有许多功能和用户界面相似的应用程序.我通过从.plist文件中获取变量来创建用户界面.例如,我从我获取数据的地方保存了API的来源.
创建新应用程序只需更改.plist文件中的值并重建应用程序,最后将其提交到App Store.此外,我还需要创建Ad-Hoc配置文件并构建测试版本.
我希望自动化这个过程.为此,我需要:
通过命令行界面构建应用程序.
将二进制文件和其他所需文件/信息(应用程序图标,说明等)上传到iTunes Connect.
我应该看哪些指针?
在Xcode 4中,项目信息中有"文档类型","导入的UTI"和"导出的UTI"的列表.我知道哪些文档类型,但导入/导出的UTI是什么?我是否还需要将每种文档类型声明为导入/导出的UTI?我用UTI.
谢谢.
所以我知道这Void用于表示函数不接受或返回值.在Swift中,Void实际上是空元组的类型别名().
有趣的是(在Beta 6中),您甚至可以声明类型的变量Void:
var x: Void
println(x)
x = test()
func test() {}
Run Code Online (Sandbox Code Playgroud)
这些陈述都是合法的.该println()打印"()".
到目前为止,我无法弄清楚这可以用于什么.为什么你需要一个不能保存任何值的变量?有没有人知道这方面的实际用途,还是这只是Swift的一个怪癖?
当我已经有了参数占位符时,Xcode的自动完成通常会妨碍我.这是一个例子:

我想将第二个更改MoveToPoint为AddLineToPoint,所以我删除了部分名称,并点击控制+空格以显示"完成"命令.我有类似的东西:

你看到了烦恼.我标签完成了名称,但现在我必须删除3个参数,逗号和括号.在编写代码时,这种事情让我烦恼并抛弃了我的注意力.
理想情况下,我想用一种命令删除这些占位符,或者有一个单独的自动完成命令,所以除了显示完成(控制+空格)之外,我还可以绑定类似于没有占位符的显示完成.有谁知道这是怎么做到的吗?
当我在Xcode中分析我的项目时,我得到了一些奇怪的错误.所有这些代码都是单个方法的一部分,该方法创建可用于制作的数组MKAnnotations.对不起,如果这是代码的泛滥 - 我尽力评论出不相关的部分.除了片段之外,我还在整个方法中包含了整个方法.谢谢!
- (void)addLines {
/*
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
// Create region and span variables
MKCoordinateSpan span;
MKCoordinateRegion region;
NSArray* arrayOuter = [defaults objectForKey:@"mapSaveDataKey"];
NSData* data = [arrayOuter objectAtIndex:[[defaults objectForKey:@"currentMap"] intValue]];
NSArray* arrayOne = [NSKeyedUnarchiver unarchiveObjectWithData:data];
if (arrayOne.count == 0)
[self returns:nil];
*/
NSArray* overlayLat = [arrayOne objectAtIndex:1];
double lats[overlayLat.count];
NSArray* overlayLong = [arrayOne objectAtIndex:2];
double longs[overlayLong.count];
NSArray* annotationLat = [arrayOne objectAtIndex:8];
double annotationLats[annotationLat.count];
NSArray* annotationLong = [arrayOne objectAtIndex:9];
double annotationsLongs[annotationLong.count];
/*
CLLocationCoordinate2D startLocation = …Run Code Online (Sandbox Code Playgroud) 我试图理解块的概念.到目前为止我所读到的内容似乎在概念上类似于JavaScript中的匿名函数.它是否正确?