我是xcode和objective-c的新手.我想问一个非常基本的问题.
我在项目设置中看到"将二进制文件链接到库"时,从工作区中的其他项目导入的框架和库存在差异.
第一个问题,为什么有框架?为什么有图书馆?我的图书馆不能成为一个框架吗?
然后,从.h文件中,如何从导入的静态库中调用类?
我想必须有一个前缀,但我找不到它."ProjName/Myclass.h"都没有工作.
请尽可能具体.
谢谢
我试图更多地了解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)
首先,我对一些变量名称有疑问:
然后为堆栈跟踪本身:
首先,一个非常愚蠢的问题,我只是想知道等待的"停车"意味着什么?线程是等待停放还是刚停放,因此处于等待状态?当停车发生时,需要多少CPU /内存资源?停放线程的目的是什么?
其次,通过在java线程API中查看park方法
除非许可证可用,否则禁用当前线程以进行线程调度.
如果许可证可用,那么它被消耗并且呼叫立即返回; 否则当前线程因线程调度而被禁用,并且在发生三件事之一之前处于休眠状态.....
英语不是我的主要语言,所以我很难理解,我打算"允许"作为"允许停放线程",所以接下来的问题:
谢谢
[更新03/04/2015]
这个问题现在已经有4年了,适用于我现在在主题中指定的特定版本的XCode.
我已经搜索了很多这个论点,但我找不到解决方案,我甚至发布了stackoverflow,但我很快就删除了这个问题,因为访问量很少.现在我再试一次.
我有一个工作区,有两个不同的项目A和B.
B有两个目标,一个构建静态库Blib.a,另一个构建一个束B.bundle.所有这些都构建在派生目录中.
在项目AI中,可以轻松地从构建阶段添加静态库.但是我找不到包含捆绑包的方法.从A中的"复制资源"选项卡看不到B.bundle.因此,我需要手动添加所有这些含义.我还考虑过使用脚本,但我想将它作为最后一个选项.
有人为此解决了问题吗?我错过了什么 ?
谢谢
我正在继续深入理解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)
现在有一些问题,其中一些我知道答案,但我不发布,因为我想听听别人的意见:
像往常一样,我请求回答所有问题,以便我能够回答.
我使用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也会删除委托吗?
谢谢
我试图寻找在Xcode4中使用聚合目标的一个例子,包括它的目的以及开发人员应该使用它的原因.
您是否有任何参考链接,特别是来自Apple Developer网站?
我有一个通用的应用程序,我正在为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,因此目标视图控制器没有按原样设置.
我究竟做错了什么 ?
我有一个简单的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错误.
我希望我清楚自己,提供的代码就足够了.
谢谢
自从我使用Eclipse Helios以来已经很长时间了,我发现在调试期间在运行时更改变量有些困难.
我已经设置了断点,当调试器停在那里时,它会在"变量"面板中显示我正在寻找的对象,该面板在调试透视图中出现.
我试图改变的值是对象内部的布尔值,但是这些是我做的不成功的试验:
不知道它是否相关,我正在调试的应用程序是在旧的jboss 5.1上运行,调试本身是通过在调试模式下运行jboss来完成的,并通过调试配置连接eclipse.全部安装在我的localhost上.
谢谢
java ×5
objective-c ×4
xcode4 ×4
thread-dump ×2
aggregate ×1
bundle ×1
debugging ×1
eclipse ×1
hibernate ×1
ipad ×1
jpa ×1
reference ×1
storyboard ×1
target ×1
uitableview ×1
workspace ×1
xcode ×1