小编Aku*_*ete的帖子

UIActivityIndi​​cator是否需要在iPhone上进行手动线程处理

我正在运行创建一个执行昂贵操作的iPhone应用程序,我想创建一个activityIndi​​cator让用户知道应用程序没有被冻结.

该操作完全在一个事件调用中执行...因此UI框架没有机会接收控件以实际显示并为该指示器设置动画.

使用UIActivityIndi​​cator(或任何其他类似动画)的示例应用程序在不同事件中启动和停止动画,在程序的不同阶段单独触发.

我是否需要手动创建一个单独的线程来运行我的操作,或者是否已经默认支持这种行为?

iphone multithreading cocoa-touch

8
推荐指数
2
解决办法
5969
查看次数

在C++中混合使用RTTI标志

如果我有多个挂在C++ C++静态链接库,是他们有可能共享(传入和传出函数)类的对象,如果他们在编译时使用不同的启用/禁用运行时类型信息(RTTI)值?

--edit:感谢您的回复,我担心的具体事情是1.启用RTTI是否会改变sizeof对静态(非多态类型)的行为?

2,如果我在启用RTTI的库中创建一个类并将其传递给另一个非RTTI启用的库,虚拟方法是否正常工作.(反之亦然)

,最后如果我在启用RTTI库中创建一个类,我希望能够用dynamic_cast的它,如果我通过那个对象非RTTI启用库,我仍然可以使用它在那个对象.......我不会这样认为,无论如何这似乎是一个坏主意......我只是好奇.

c++ rtti

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

在OSX上用C++捕获屏幕图像

有没有办法以编程方式在mac上截取当前屏幕显示的屏幕截图(或以某种方式获取图像)?

优选地,在C++中,不是Objective-C.

c++ macos screen-capture

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

在空std :: vector上使用operator []

我刚才被告知,在c ++中使用std :: vector作为异常安全动态数组而不是分配原始数组是常见的...例如

{
    std::vector<char> scoped_array (size);
    char* pointer = &scoped_array[0];

    //do work

} // exception safe deallocation
Run Code Online (Sandbox Code Playgroud)

我已多次使用此约定没有问题,但是我最近将一些代码移植到Win32 VisualStudio2010(之前只在MacOS/Linux上)并且我的单元测试正在破坏(stdlib抛出一个断言)当矢量大小恰好是零.

我知道写一个这样的数组会有问题,但是这个假设打破了这个解决方案作为原始指针的替代.考虑以下函数,n = 0

void foo (int n) {
   char* raw_array = new char[n];
   char* pointer = raw_array;
   file.read ( pointer , n );
   for (int i = 0; i < n; ++i) {
      //do something
   }
   delete[] raw_array;
}
Run Code Online (Sandbox Code Playgroud)

虽然可以说是多余的,但上面的代码完全合法(我相信),而下面的代码将在VisualStudio2010上抛出一个断言

void foo (int n) {
   std::vector<char> scoped_array (n);
   char* pointer = …
Run Code Online (Sandbox Code Playgroud)

c++ vector visual-studio-2010

8
推荐指数
2
解决办法
2620
查看次数

你如何在Mac OS X上安装pycairo?

这是我第一次触摸python,我正在尝试使用库'cairo',但是无法导入它获取消息

Python 2.6.4 (r264:75821M, Oct 27 2009, 19:48:32) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cairo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named cairo
Run Code Online (Sandbox Code Playgroud)

据我所知,我已经安装了所有正确的库,详情如下:

1)从.dmg安装了Python2.6.4 http://www.python.org/download/releases/2.6.4/

2)从macports的'sudo port install cairo'安装cairo1.8.8

3)从macports'sudo install py-cairo'安装了py-cairo(无法导入cairo之后)

4)从源码tarball'http: //www.cairographics.org/pycairo/ ' 安装了py-cairo

./configure
make install
python setup.py install
Run Code Online (Sandbox Code Playgroud)

现在有已创建的目录/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/cairo,但它仅包含"_cairo.so",我仍然无法从导入开罗python解释器.

有没有明显的事我做错了??任何帮助表示赞赏.

python macos installation

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

集合中的Grails域类

集合中使用域对象或在地图中使用键是不好的做法?

在过去,我做过很多这样的事情

Set<Book> someBooks = [] as Set
someBooks.addAll (Book.findAllByAuthorLike('%hofstadter%'))
someBooks.add (Book.findByTitleLike ('%eternal%'))
Run Code Online (Sandbox Code Playgroud)

但是我注意到,在findAllByAuthorLike返回Hibernate Proxy对象列表时会经常遇到问题com.me.Book_$$_javassist_128findByTitleLike会返回正确的com.me.Book对象.这会导致集合中的重复,因为真实对象和代理被认为相等.

我发现在使用像这样的域对象集时我需要非常小心,我觉得它可能是我不应该首先做的事情.

替代方案当然是使用id的集合/映射,但它使我的代码冗长并容易产生误解

Set<Integer> someBooks = [] as Set // a set of id's for books    
Run Code Online (Sandbox Code Playgroud)

@Burt:我认为Grails域类已经这样做了,至少使得equals/compare在class/id而不是对象实例上完成.你的意思是hibernate代理的特殊比较器?

return (this.class == obj.class && this.id == obj.id) || 
       (obj.class  == someHibernateProxy && this.id == obj.id)
Run Code Online (Sandbox Code Playgroud)

grails groovy domain-object

7
推荐指数
1
解决办法
3948
查看次数

以编程方式切换Cocoa Touch中的视图

如何在iPhone应用程序中以编程方式更改屏幕上的视图?

我已经能够创建导航视图并以编程方式推送/弹出它们以产生这种行为,但如果我只想更改当前视图(不使用UINavigation控制器对象),实现这一目标的最佳方法是什么?

一个简单的例子,想象一个具有单个按钮的应用程序,当按下时将显示一个新视图,或者可能是多个视图中的一个,具体取决于某个内部状态变量.

我还没有看到任何试图这样做的例子,我似乎对UIViewController/UIView对象之间的关系和初始化过程没有足够的理解来以编程方式实现这一点.

iphone cocoa-touch objective-c ios

6
推荐指数
1
解决办法
6502
查看次数

STL容器中的持久引用

使用C++ STL容器时,必须在什么条件下访问引用值?例如,在对容器的下一个函数调用之后,是否有任何引用无效?

{
std::vector<int> vector;
vector.push_back (1);
vector.push_back (2);
vector.push_back (3);

vector[0] = 10;       //modifies 0'th element

int& ref = vector[0];
ref = 10;             //modifies 0'th element

vector.push_back (4);
ref = 20;             //modifies 0'th element???

vector.clear ();
ref = 30;             //clearly obsurd
}
Run Code Online (Sandbox Code Playgroud)

据我所知,在stl的大多数实现中,这都可行,但我对标准声明的要求感兴趣.

--edit:我感兴趣因为我想尝试用于c ++ 的STXXL(http://stxxl.sourceforge.net/)库,但我意识到容器返回的引用并不是多次读取的持久性,因此不是兼容,而不对我现有的stl代码进行更改(无论多么肤浅).一个例子:

{
std::vector<int> vector;
vector.push_back (1);
vector.push_back (2);


int& refA = vector[0];
int& refB = vector[1]; //refA is not gaurenteed to be valid anymore
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道这是否意味着STXXL容器不是100%兼容,或者确实如果我一直在以不安全/实现依赖的方式使用STL容器.

c++ stl

6
推荐指数
2
解决办法
1849
查看次数

Android上的便携式JDBC与SQLite

我在Android应用程序使用的项目中使用SQLite.目前我正在使用提供的SQLite实现android.database.sqlite.

我想创建一个使用相同代码库的桌面应用程序.所以我需要将所有共享行为分成一个单独的可移植项目/ jar.

我的问题是我目前正在大量使用android.database.sqlite.如果可能的话,我不想重新编写每个数据库访问调用以与JDBC兼容,或者在不使用android提供的SQLite的情况下我将不得不使用它.

解决此问题,对现有代码的影响最小.我打算编写一个android.database.sqlite共享代码将使用的SQLite接口(兼容)...在android上它将通过简单的方式实现android.database.sqlite,并且在桌面上它将通过某种方式通过JDBC来破坏SQLite来实现匹配android.database.sqlite.

事实证明这很困难,因为我经常提供Object[]数组绑定到JDBC需要严格键入的预准备语句,而我根本不熟悉JDBC.

有没有其他方法可以在Java中使用类似于SQLite android.database.sqlite,或者任何其他方法可以节省我与重写许多数据库访问点相关的工作量(和不可避免的调试)?

免责声明:我从来没有尝试过使用JDBC.

简化问题:在java中使用SQLite的最佳方法是什么?JDBC,其他?

java sqlite android portability jdbc

6
推荐指数
1
解决办法
3545
查看次数

使用自定义std :: ostream包装FILE*

我有一个与a一起工作的功能std::ostream.我需要支持使用C文件句柄(FILE*).我应该创建自己的子类,std::ostream其委托给一个FILE*

c++ iostream wrapper

6
推荐指数
2
解决办法
2074
查看次数