小编Pra*_*ore的帖子

在objective-c/cocoa中抛出异常

在objective-c/cocoa中抛出异常的最佳方法是什么?

cocoa exception-handling objective-c

410
推荐指数
9
解决办法
13万
查看次数

获取"此应用程序正在从后台线程修改自动布局引擎"错误?

在我的OS X中使用swift遇到了这个错误:

"此应用程序正在从后台线程修改自动布局引擎,这可能导致引擎损坏和奇怪的崩溃.这将导致未来版本中的异常."

我有一个我的NSWindow,我正在交换contentView窗口的视图.当我尝试在窗口上执行操作时,或者在向窗口添加窗口时,我收到错误.尝试禁用自动调整大小的东西,我没有任何使用自动布局的东西.有什么想法吗?NSApp.beginSheetsubview

有时它很好,没有任何反应,有时它完全打破了我的UI负担

macos background-thread autolayout swift

298
推荐指数
10
解决办法
14万
查看次数

如何从Xib文件加载自定义UITableViewCells?

问题很简单:如何UITableViewCell从Xib文件加载自定义?这样做允许您使用Interface Builder来设计单元格.由于内存管理问题,答案显然并不简单.这个主题提到了这个问题并建议了一个解决方案,但是在NDA发布之前并且没有代码.这是一个很长的线程,在没有提供明确答案的情况下讨论了这个问题.

这是我用过的一些代码:

static NSString *CellIdentifier = @"MyCellIdentifier";

MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil];
    cell = (MyCell *)[nib objectAtIndex:0];
}
Run Code Online (Sandbox Code Playgroud)

要使用此代码,请创建MyCell.m/.h,它是所需组件的新子类UITableViewCell并添加IBOutlets.然后创建一个新的"空XIB"文件.在IB中打开Xib文件,添加一个UITableViewCell对象,将其标识符设置为"MyCellIdentifier",并将其类设置为MyCell并添加组件.最后,连接IBOutlets到组件.请注意,我们没有在IB中设置文件所有者.

如果未通过其他工厂类加载Xib,则其他方法主张设置文件所有者并警告内存泄漏.我在Instruments/Leaks下测试了上面的内容,没有发现内存泄漏.

那么从Xibs加载单元格的规范方法是什么?我们设置文件的所有者吗?我们需要工厂吗?如果是这样,工厂的代码是什么样的?如果有多种解决方案,让我们澄清每种解决方案的优缺点......

cocoa-touch uitableview xib ios

289
推荐指数
10
解决办法
21万
查看次数

ReactiveCocoa vs RxSwift - 优点和缺点?

所以现在有了swift,ReactiveCocoa人员已经在3.0版本中为swift重写了它

此外,还有另一个名为RxSwift的项目.

我想知道人们是否可以添加关于两个框架的设计/ api /哲学的差异的信息(请在SO的精神中,坚持真实的事情,而不是关于哪个是"最佳"的意见)

[注意StackOverflow mods:这个问题有确切的答案,答案是两个框架之间的差异.我认为这也是SO的主题

首先,我阅读ReadMe的最初印象是:

  • 作为熟悉微软"真正的"C#Rx的人,RxSwift看起来更容易识别.
  • ReactiveCococa似乎已经进入了它自己的空间,引入了新的抽象,如Signals vs SignalProducers和Lifting.一方面,这似乎澄清了一些情况(什么是热与冷信号),但另一方面,这似乎增加了框架的复杂性很多

reactive-programming swift reactive-cocoa-3 rx-swift

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

你如何找到一个对象的类型(在Swift中)?

当试图理解程序时,或者在某些角落情况下,能够真正找出什么类型的东西是有用的.我知道调试器可以显示一些类型信息,你通常可以依赖类型推断来避免在那些情况下不指定类型,但是,我仍然喜欢像Python这样的东西type()

dynamicType(查看此问题)

更新:这在最近的Swift版本中已经更改,obj.dynamicType现在为您提供类型的引用,而不是动态类型的实例.

这个似乎是最有希望的,但到目前为止我还没有找到实际的类型

class MyClass {
    var count = 0
}

let mc = MyClass()

# update: this now evaluates as true
mc.dynamicType === MyClass.self
Run Code Online (Sandbox Code Playgroud)

我也尝试使用类引用来实例化一个新对象,这确实有效,但奇怪地给了我一个错误,说我必须添加一个required初始化器:

作品:

class MyClass {
    var count = 0
    required init() {
    }
}

let myClass2 = MyClass.self
let mc2 = MyClass2()
Run Code Online (Sandbox Code Playgroud)

尽管如此,实际发现任何给定对象的类型仍然只是一小步

编辑:我删除了大量现在无关的详细信息 - 如果您有兴趣,请查看编辑历史记录:)

typechecking swift

242
推荐指数
10
解决办法
20万
查看次数

在UILabel的NSAttributedString中创建可点击的"链接"?

我一直在搜索这几个小时,但我失败了.我可能甚至不知道我应该寻找什么.

许多应用程序都有文本,在本文中是圆角矩形的Web超链接.当我点击它们UIWebView打开.让我感到困惑的是,他们经常有自定义链接,例如,如果单词以#开头,它也是可点击的,应用程序通过打开另一个视图来响应.我怎样才能做到这一点?是否有可能UILabel或我需要UITextView或其他什么?

hyperlink nsattributedstring uilabel ios uitapgesturerecognizer

220
推荐指数
14
解决办法
19万
查看次数

iOS7上的UITextfield leftView/rightView填充

iOS7上UITextField的leftView和rightView视图非常接近文本域边框.

如何为这些项添加一些(水平)填充?

我尝试修改框架,但没有工作

uint padding = 10;//padding for iOS7
UIImageView * iconImageView = [[UIImageView alloc] initWithImage:iconImage];    
iconImageView.frame = CGRectMake(0 + padding, 0, 16, 16);
textField.leftView = iconImageView;
Run Code Online (Sandbox Code Playgroud)

请注意,我没有兴趣在文本字段的文本中添加填充,比如使用UITextBorderStyleNone为UITextField设置填充

objective-c uitextfield ios

86
推荐指数
8
解决办法
9万
查看次数

如何组织游戏代码以适应MVC模式?

我是大学新生,攻读计算机科学学位......过去几年我编写了大量的课程,但最近我对组织代码,设计模式,语言差异等方面的理论思考越来越深入.

我有一个Java类,所以我放弃了我的C++研究/开发,转而使用Java和JOGL(Java OpenGL).太棒了!但这不是重点.

我想制作一款小型角色扮演游戏,但这个问题确实适用于任何类型的游戏.如何以结构化的方式组织游戏对象,如模型 - 视图 - 控制器模式?它看起来是一个惊人的模式,使用非常广泛并且很有意义,但我无法弄清楚如何实现它.

例如,我需要跟踪一个GL对象以便绘制到屏幕上.我必须有实现MouseListener,MouseMotionListener,MouseWheelListener和KeyListener(或者一个类,一体化输入管理器)的类.我必须将我的游戏数据放在所有这些不同类可以访问和修改它的地方; 如果有人按下键盘上的按钮,输入管理类需要以某种方式执行键映射到的操作; 当需要绘制一个框架时,图形类需要找到一种方法来遍历所有不同的"事物"并将它们全部绘制出来.

我最大的问题是GUI; 它与哪里结合在一起?它类似于输入,但并不完全,它需要设置和获取实际游戏模拟中的数据......如果我决定尝试添加网络,那就更复杂了(类似于GUI )还需要访问大量数据进行修改和阅读...

哦,我只是困惑.我不知道如何以面向对象的方式将所有这些工作结合在一起......编写明显符合模式的东西很容易,但是当你发生的大量事情都与一个游戏循环相关时,相互修改和游戏数据等,...我甚至不知道.也许我只是让这个比实际更大.

还有其他人有这种感觉吗?请为我的情况提供一些清晰度,这样我就可以花更少的时间来担心并且不知道从哪里开始!

-Ricket

编辑:找到一个很好的图表,可以帮我解决这个问题...来源:(小心,PS文件!)http://www.tucs.fi/publications/attachment.php?fname=TR553.ps.gz

http://img10.imageshack.us/img10/6278/mvcdiagramgamesbl5.png

编辑2:我也喜欢这个人对他如何计划他的MVC游戏的解释:http://interactivesection.wordpress.com/2007/11/19/dum-de-dum-drum-my-first-mvc-game-development/

Edit3:另一篇很棒的文章! http://dewitters.koonsolo.com/gamemvc.html

java oop model-view-controller design-patterns

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

在CALayer中添加UIImage

我必须添加一个UIImageView作为MapView的子视图.为此,我在MapView上创建了一个图层.在这一层,我想放置我的图像,但我得到一个白色的矩形,没有别的.我的图片不可见.

这是代码:

- (void)viewDidLoad
{
    //......

    CALayer *layer = [CALayer layer];
    layer.backgroundColor = [[UIColor whiteColor] CGColor];

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        layer.bounds = CGRectMake(self.mapView.bounds.origin.x,
                                  self.mapView.bounds.origin.y, 80, 300);
    }
    else
    {
        layer.bounds = CGRectMake(self.mapView.frame.origin.x,
                                  self.mapView.frame.origin.y, 150, 700);
    }

    layer.contents = (id)[UIImage imageNamed:@"myImage.png"];
    //the name is correct but  in the output the image is not visible

    [[self.mapView layer] addSublayer:layer];
    [layer setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)

subview calayer uiimageview uiimage ios

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

如何在MKMapView上捕捉Tap手势

我正在尝试捕捉我的点击事件MKMapView,这样我就可以MKPinAnnotation在用户点击的点上删除.基本上我有一个覆盖的地图MKOverlayViews(显示建筑物的叠加层),我想通过删除MKPinAnnotaion并在标注中显示更多信息来为用户提供有关该叠加的更多信息.谢谢.

mkpinannotationview mkmapview ios4 mkoverlay uitapgesturerecognizer

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