小编Res*_*h32的帖子

检测主线程之外的UI操作

注意:这个问题与从后台线程调用UIKit的警告有关,但没有给出下面两种方法的答案.

我有一个问题,应用程序屏幕快速闪烁.我过去已经遇到过这个问题,这是因为更新了主线程之外的UI元素.

因此,我将以下代码放在很多地方:

assertMainThread();
Run Code Online (Sandbox Code Playgroud)

这是:

#define assertMainThread() NSAssert([NSThread isMainThread],@"Method called using a thread other than main!")
Run Code Online (Sandbox Code Playgroud)

当然我无法使用assertMainThread()来覆盖整个代码,因为有很多地方和一些代码由背景GCD队列以合法的方式使用.

我看了很多地方,但找不到XCode或LLDB告诉我何时在主线程之外更新UI元素的方法.我认为可以使用符号断点或其他一些机制来破解UIKit中常见方法在主线程外部调用的地方,但是找不到方法.

我还以为UIKit可以在运行时发出警告吗?或者至少给我们一些工具来帮助调试这些问题.

我看过的另一种方法(但没有尝试)是使用一些代码覆盖技术,并尝试在视觉中提取代码中的哪个线程,但没有走那条路.

你对如何解决这个问题有任何想法吗?

uikit ios xcode4 lldb

20
推荐指数
1
解决办法
5867
查看次数

我可以在模拟器中运行旧的应用程序存档吗?

当我们通过XCode将新版本的iOS应用程序部署到App Store时,会生成一个存档.

有没有办法获取旧存档并在模拟器中运行它?我想这样做是为了能够轻松测试服务器端代码与所有以前版本的应用程序(或至少当时主要使用的两个版本)的向后兼容性.

我知道我可以提交到GIT存储库并提取特定版本,但这有两个问题:a.它比简单地运行档案更复杂,b.它很容易出错,并且在它完成的机器上停止开发新版本,并且c.可能存在一些与编译器更改有关的偏差,或者在渲染版本难以编译之间的任何其他XCode更改.

我在StackOverflow上找不到任何帮助,也没有在XCode的Archive存储库中找到这种可能性的任何迹象.我应该提交功能请求@ Apple吗?

xcode objective-c ios

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

Hibernate验证注释 - 验证至少一个字段不为空

有没有办法使用此处定义的注释定义Hibernate验证规则,说明至少有一个字段不为空?

这将是一个假设的例子(@OneFieldMustBeNotNullConstraint并不存在):

@Entity
@OneFieldMustBeNotNullConstraint(list={fieldA,fieldB})
public class Card {

    @Id
    @GeneratedValue
    private Integer card_id;

    @Column(nullable = true)
    private Long fieldA;

    @Column(nullable = true)
    private Long fieldB;

}
Run Code Online (Sandbox Code Playgroud)

在图示的情况下,fieldA可以为null或fieldB可以为null,但不能同时为两者.

一种方法是创建我自己的验证器,但我想避免它已经存在.如果你已经有一个验证器,请分享一个验证器...谢谢!

java validation annotations hibernate

10
推荐指数
2
解决办法
6626
查看次数

KVO用于整个对象属性

是否可以添加观察者以在任何受监视对象属性被修改时获得通知?例如:

@interface OtherObject : NSObject

@property (nonatomic) MyObject* myObject;

@end
Run Code Online (Sandbox Code Playgroud)

@interface MyObject : NSObject

@property (nonatomic) unsigned int property1;
@property (nonatomic) unsigned int property2;

@end
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

[otherObject addObserver:self
               forKeyPath:@"myObject"
                  options:0
                  context:nil]
Run Code Online (Sandbox Code Playgroud)

如果property1或property2被修改,则会收到通知.如果我注册保持对象似乎不起作用(以某种方式有意义,因为当我修改property1时,我没有真正修改myObject).

objective-c key-value-observing ios

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

弄皱的纸UIView动画

你知道任何带有UIView并将其作为动画揉皱的iOS库吗?

只是为了说明在这种情况下崩溃意味着什么:

在此输入图像描述

截图

(从CSS压缩效果中截取的截图)

最有可能不存在,但想知道......

animation cocoa-touch objective-c ios

7
推荐指数
0
解决办法
902
查看次数

调试区域没有输出

在调试区域:

(lldb) po myObjectName
(lldb) 
Run Code Online (Sandbox Code Playgroud)

LLDB对我的所有po或打印查询都给出了空响应.似乎LLDB调试不再起作用或者不打印调试消息.

xcode ios lldb

4
推荐指数
1
解决办法
657
查看次数

将 CLRegion 转换为 MKMapRect 或类似的

我想将 CLRegion(中心和半径)转换为两点(左上、右下)坐标集。

我看过这个答案,但它不合适: Convert MKCooperativeRegion to MKMapRect

我之所以有 CLRegion 是因为它是正向地理定位的输出。

我需要两个纬度/经度点来查询数据库(因此不能使用 CLRegion containsCooperative)。

coordinate-transformation ios

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