小编Leo*_*rdo的帖子

xcode4中框架和静态库之间的区别,以及如何调用它们

我是xcode和objective-c的新手.我想问一个非常基本的问题.

我在项目设置中看到"将二进制文件链接到库"时,从工作区中的其他项目导入的框架和库存在差异.

第一个问题,为什么有框架?为什么有图书馆?我的图书馆不能成为一个框架吗?

然后,从.h文件中,如何从导入的静态库中调用类?

我想必须有一个前缀,但我找不到它."ProjName/Myclass.h"都没有工作.

请尽可能具体.

谢谢

objective-c static-libraries xcode4

132
推荐指数
2
解决办法
5万
查看次数

如何分析java线程转储?

我试图更多地了解java,尤其是关于内存管理和线程.出于这个原因,我最近发现有兴趣查看线程转储.

以下是使用VisualVM(一种用于java的内置工具)从Web应用程序中获取的几行:

"Finalizer" daemon prio=8 tid=0x02b3d000 nid=0x898 in Object.wait() [0x02d0f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x27ef0288> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x27ef0288> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

   Locked ownable synchronizers:
    - None

"Reference Handler" daemon prio=10 tid=0x02b3b800 nid=0x494 in Object.wait() [0x02cbf000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x27ef0310> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:485)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
    - locked <0x27ef0310> (a java.lang.ref.Reference$Lock)
Run Code Online (Sandbox Code Playgroud)

首先,我对一些变量名称有疑问:

  • tid和nid是什么意思?
  • Object.wait之后的平方括号中的数字是多少?

然后为堆栈跟踪本身:

  • 是什么意思等待<.....>(一个java.lang ....)和 …

java multithreading thread-dump

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

了解java.lang.Thread.State:WAITING(停车)

首先,一个非常愚蠢的问题,我只是想知道等待的"停车"意味着什么?线程是等待停放还是刚停放,因此处于等待状态?当停车发生时,需要多少CPU /内存资源?停放线程的目的是什么?

其次,通过在java线程API中查看park方法

除非许可证可用,否则禁用当前线程以进行线程调度.

如果许可证可用,那么它被消耗并且呼叫立即返回; 否则当前线程因线程调度而被禁用,并且在发生三件事之一之前处于休眠状态.....

英语不是我的主要语言,所以我很难理解,我打算"允许"作为"允许停放线程",所以接下来的问题:

  • 这是什么意思,什么是"许可",以及检查这些许可的人和方式是什么?
  • 这意味着什么:'如果有许可证就可以消费',它是否被"停放"了?
  • 如果第二点是真的,那么'停车'和'休眠'之间的区别是什么?如果我有许可证我可以永久停放,如果没有,我可以让它"休眠"吗?

谢谢

java multithreading

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

如何在主项目xcode 4.1中包含一个包

[更新03/04/2015]

这个问题现在已经有4年了,适用于我现在在主题中指定的特定版本的XCode.


我已经搜索了很多这个论点,但我找不到解决方案,我甚至发布了stackoverflow,但我很快就删除了这个问题,因为访问量很少.现在我再试一次.

我有一个工作区,有两个不同的项目A和B.

B有两个目标,一个构建静态库Blib.a,另一个构建一个束B.bundle.所有这些都构建在派生目录中.

在项目AI中,可以轻松地从构建阶段添加静态库.但是我找不到包含捆绑包的方法.从A中的"复制资源"选项卡看不到B.bundle.因此,我需要手动添加所有这些含义.我还考虑过使用脚本,但我想将它作为最后一个选项.

有人为此解决了问题吗?我错过了什么 ?

谢谢

workspace xcode bundle xcode4

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

了解Reference Handler线程

我正在继续深入理解Java Thread.不幸的是,我的Java认证没有涵盖那部分,因此唯一的学习方法是发布一系列愚蠢的问题.经过这么多年的Java开发,我有时想知道我还有多少要学习:-)

特别是我现在关注的是引用处理程序线程.

"Reference Handler" daemon prio=10 tid=0x02da3400 nid=0xb98 in Object.wait() [0x0302f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x1aac0320> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:485)
    at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
    - locked <0x1aac0320> (a java.lang.ref.Reference$Lock)
Run Code Online (Sandbox Code Playgroud)

现在有一些问题,其中一些我知道答案,但我不发布,因为我想听听别人的意见:

  1. 参考处理程序线程应该做什么?
  2. 线程转储应该被认为是自下而上的,为什么堆栈跟踪以锁定开始,至少在线程运行之后是否应该出现锁定语句?
  3. "原生方法"是什么意思?
  4. 为什么"Unknown Source",在这种情况下,线程转储无法调用源代码?
  5. 最后等待和锁定有相同的,为什么?

像往常一样,我请求回答所有问题,以便我能够回答.

java reference thread-dump

23
推荐指数
1
解决办法
9728
查看次数

正确使用NSFetchedResultsController缓存

我使用NSFetchedResultsController来处理UITableView,一切正常,我发现它非常强大,特别是与结果委托一起使用.为了向下钻取表格,我重复使用相同的控制器类,通过单击单元格行来获取参数,然后将控制器推送到UINavigationController并再次使用NSFetchedResultsController构建另一个表视图.

此时,每个控制器都有自己的缓存,缓存名称是使用唯一标识符[NSString stringWithFormat"cacheName _%@",uniqueStringForCell]派生的,最后我显然可以有很多缓存.

现在的问题.

1)有很多缓存可能是个问题?

2)我们什么时候应该使用缓存?

3)在deleteCacheWithName的情况下,放置这种方法的最佳位置在哪里?我已经尝试过viewWillDisappear,但是有了这个,我认为当视图再次出现并且缓存不再存在时,例如当使用UINavigationController时,我会遇到问题.dealloc方法可能是最好的地方吗?

4)缓存和内存管理之间的关系是什么?我的意思是,当发送(void)didReceiveMemoryWarning时,我是否需要删除缓存?如果是的话,那又重建一次呢?什么是首选方式,也许重新发出提取?

5)fetch控制器的委托设置为UITableViewController(fetchController.delegate = self),有什么问题吗?从某种意义上说,如果发生变化,会提醒多个控制器?deleteCacheWithName也会删除委托吗?

谢谢

objective-c uitableview nsfetchedresultscontroller

14
推荐指数
1
解决办法
4632
查看次数

何时以及如何在xcode 4中使用Aggregate Target

我试图寻找在Xcode4中使用聚合目标的一个例子,包括它的目的以及开发人员应该使用它的原因.

您是否有任何参考链接,特别是来自Apple Developer网站?

aggregate objective-c target xcode4

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

在performSegue:withIdentifier:with popover style之后不调用prepareForSegue

我有一个通用的应用程序,我正在为IPad和IPhone故事板共享相同的控制器.我在UITableView上放了一个UILongPressGestureRecognizer,当在iPhone上按下一个单元格时,它会调用一个执行segue的动作:

-(IBAction)showDetail:(id)sender {
    UILongPressGestureRecognizer *gesture = (UILongPressGestureRecognizer*)sender;
    if (gesture.state == UIGestureRecognizerStateBegan) {
        CGPoint p = [gesture locationInView:self.theTableView];

        NSIndexPath *indexPath = [self.theTableView indexPathForRowAtPoint:p];
        if (indexPath != nil) {
            [self performSegueWithIdentifier:SEGUE_DETAIL sender:indexPath];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

segue是作为"推送"执行的详细视图.您应该注意的第一件事是发件人是NSIndexPath,是我找到的传递所选单元格的唯一方法.也许有更好的解决方案.一切都运行良好,从某种意义上说,执行segue,并在prepareForSegue被调用之前.

然而,在iPad上,我已经将segue标识符更改为Popover.现在事情正在部分工作,执行了segue,但是没有调用prepareForSegue,因此目标视图控制器没有按原样设置.

我究竟做错了什么 ?

objective-c storyboard ipad uipopovercontroller xcode4

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

筛选由jpa/hibernate查询返回的实体中包含的列表

我有一个简单的jpa实体'ApplicationForm',里面有一个到多个列表:

 @OneToMany(cascade=CascadeType.REMOVE, mappedBy="textQuestion")
 private List<Dictionary> questions;
Run Code Online (Sandbox Code Playgroud)

ApplicationForm中包含的变量Dictionary只是另一个只有问题文本的普通实体.由Dictionary映射的相应数据库表是:

'locale' 'text'      'formId'
en       my question 123 
it       mia domanda 123
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用jpa或hibernate构建一个查询,用于检索具有特定语言环境的Dictionary的ApplicationForm实体,例如"it".这对标准的sql来说很容易,但是我无法在hql中进行翻译.

如果不可能,你能建议另一种方式吗?我试图手动迭代字典问题列表并删除不需要的语言环境,但不是很优雅,而且我还有一个jpa/hibernate错误.

我希望我清楚自己,提供的代码就足够了.

谢谢

java hibernate jpa

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

在运行时在调试透视图中更改变量值eclipse

自从我使用Eclipse Helios以来已经很长时间了,我发现在调试期间在运行时更改变量有些困难.

我已经设置了断点,当调试器停在那里时,它会在"变量"面板中显示我正在寻找的对象,该面板在调试透视图中出现.

我试图改变的值是对象内部的布尔值,但是这些是我做的不成功的试验:

  1. 展开对象,查找变量展开它直到它显示值,将值更改为false:这会导致更改对象中的所有布尔值
  2. 将监视表达式添加到布尔变量,但后来我无法找到更改其值的方法

不知道它是否相关,我正在调试的应用程序是在旧的jboss 5.1上运行,调试本身是通过在调试模式下运行jboss来完成的,并通过调试配置连接eclipse.全部安装在我的localhost上.

谢谢

java eclipse debugging

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