小编Vas*_*lis的帖子

为什么java Android中的super.onDestroy()在析构函数中排在首位?

根据哪些逻辑super.onDestroy();在析构函数中排在最前面?例如:

protected void onDestroy() {        
    super.onDestroy();
    releaseMediaPlayer();
}
Run Code Online (Sandbox Code Playgroud)

并不是:

protected void onDestroy() {        
    releaseMediaPlayer();
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

就像在c ++,obj-c,pascal等?

java android destroy

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

从objective-c中的@synchronized块内部返回

可能有人告诉我是否可以从一个@synchronized街区内返回?

例如:

    - (id)methodThatReturnsSomething:(BOOL)bDoIt
    {
        @synchronized(self) {      

             if(!bDoIt) return nil;
             ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

或者我应该先解锁块(使用NSLock代替)?

objective-c synchronized thread-safety

28
推荐指数
1
解决办法
3346
查看次数

objective-c NSFilePosixPermissions到人类可读的NSString

有没有办法从NSFilePosixPermissions整数中获取人类可读的字符串(例如@"drwxr-xr-x")?

permissions posix objective-c nsstring human-readable

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

两个lat,lon点之间的距离

是否可以比较经典方式的距离(2点之间的距离d = sqrt(pow(lat2-lat1, 2) + pow(lon2-lon1, 2)):),使用从谷歌apis返回的纬度和经度,没有任何转换为​​米或某些?我需要它只是为了比较,找到从一系列点到参考点的最近点.例如:

让我们说我们有两个(lat,lon)点:(40.2535425,22.88245345)和(40.2565795,22.8884539)我们想找到女巫最接近(40.2335425,22.83245345).可以应用上面的代码来查找距离吗?或者我们需要找到距离,比如以米为单位(使用半正式公式或其他),首先是参考点的每个点,然后比较这些值?

我问这个问题,因为我不知道google apis返回的值究竟是什么,作为lat,lon!我的意思是它们不是deg-min-sec吗?

谢谢...

google-maps distance latitude-longitude

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

在矢量std :: move之后,矢量元素如何保留其原始地址?

正如您在输出中看到的那样,向量的对象pre不仅"移动"到向量post,还将其原始地址空间保留在内存中.这一举动背后的真实情况是什么?这种行为有望吗?假设我需要有一个指向这些对象的单独指针向量,可以安全地假设在此移动之后对象将始终具有其原始地址吗?

实际上,我有一个类包含这样的向量和我作为成员提到的指针向量.我还删除了副本ctors,并为课程定义了移动副本.

#include <iostream>
#include <vector>

struct B {
    int val = 0;   
    B(int aInt) : val(aInt) {  };
};

int main() {

    std::vector<B> pre;

    pre.push_back(B(1));
    pre.push_back(B(2));
    std::cout << "pre-move:\t" << (void*)&pre.at(0) << '\n';
    std::cout << "pre-move:\t" << (void*)&pre.at(1) << '\n';

    std::vector<B> post(std::move(pre));

    std::cout << "post-move:\t" << (void*)&post.at(0) << '\n';
    std::cout << "post-move:\t" << (void*)&post.at(1) << '\n';

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

pre-move:   0x1d7b150 
pre-move:   0x1d7b154 <------|
post-move:  0x1d7b150        |
post-move:  0x1d7b154 <------|
Run Code Online (Sandbox Code Playgroud)

c++ vector move-semantics c++11

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

在keyDown事件中获取modifierFlags而不按下非修饰键!

我已经在NSDocument应用程序中将NSWindow子类化,以便接收keyDown事件.

我在我的子类中使用了以下代码...

- (void)keyDown:(NSEvent *)theEvent {

    NSLog(@"keyDown!");

    if ([theEvent modifierFlags] & NSAlternateKeyMask) {
        NSLog(@"Alt key Down!");
    }
    else
        [super keyDown:theEvent];
}
Run Code Online (Sandbox Code Playgroud)

当按下非修饰键时,我收到了关键事件!当我按下alt + z时,我也收到"Alt Key is Down"(alt + non-modifierkey).

这里的问题是,我只想单独按下alt/option键来处理事件,而不与其他键组合,并且-keyDown:不会被调用!我错过了什么?

谢谢...

events objective-c handle modifier keydown

5
推荐指数
1
解决办法
1968
查看次数

NSThread中的NSUrlConnection - 没有委托被执行!

我在NSThread中使用NSURLConnection,但没有执行NSURLConnection的委托方法!我的NSTread子类中有一个main方法,一个while循环使线程保持活动状态.有帮助吗?

很抱歉所有这些代码,但我认为这是描述我的问题的最佳方式.所以这是一个执行异步连接调用的对象createConnectionWithPath:userObjectReference

@interface WSDAsyncURLConnection : NSObject 
{
    NSMutableData *receivedData;
    NSDate *connectionTime;
    NSURLConnection *connection;

    id _theUserObject;

}


@property (nonatomic, retain) NSMutableData *receivedData;
@property (nonatomic, retain) NSDate *connectionTime;
@property (nonatomic, assign) NSURLConnection *connection;

- (void)createConnectionWithPath:(NSString *)thePath userObjectReference:(id)userObject;


@end


#import "WSDAsyncURLConnection.h"

@implementation WSDAsyncURLConnection
@synthesize connectionTime, receivedData, connection;


- (void) terminate
{
    if (self.connection) {
        [self.connection release];
        self.connection = nil;
    }
}   


- (void) createConnectionWithPath:(NSString *)thePath userObjectReference:(id)userObject;
{   
    _theUserObject = userObject;


    NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:thePath]
                                                cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60];


    self.connection = [[NSURLConnection alloc] …
Run Code Online (Sandbox Code Playgroud)

connection url delegation objective-c nsthread

5
推荐指数
1
解决办法
2425
查看次数

退出应用程序时dealloc方法是否正常执行?

当我的应用程序终止时,我使用以下代码(例如我的appController.m内部)进行一些清理...

- (void) dealloc {
    [myObject release]; // myObject 's dealloc will not be called either !!!
    [arraySMSs release];
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

当应用程序退出时,此方法永远不会被调用!为什么?有没有更好的地方来清理?没有调用的事实解决了内存泄漏问题?或者OS确实需要清理?

谢谢...

memory-leaks objective-c quit dealloc

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

我们什么时候应该在脚本中将IFS变量更改回原始值?

假设我通过cronjob执行此脚本:

IFS=$'\n'

for i in `cat "$1"`; do
    echo "$i" >> xtempfile.tmp;
done
Run Code Online (Sandbox Code Playgroud)

它工作正常,没有任何问题.但是当我在终端中运行它时,我必须将IFS变量设置回其原始值

IFS=$OLDIFS
Run Code Online (Sandbox Code Playgroud)

一般情况下,我们应该在哪些情况下IFS恢复到原来的价值?

unix linux bash scripting ifs

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

使用目标c中的@synchronized指令解决死锁和活锁问题

从苹果的"线程编程指南"中我读到"避免死锁和活锁情况的最佳方法是一次只能锁一次".如果我更喜欢在我的代码中使用@synchronized指令,这意味着我应该这样做:

@synchronized(aObj){

@synchronized(bObj) {

    // do sth with the aObj and bObj here     
} 
Run Code Online (Sandbox Code Playgroud)

}

而不是这个:

@synchronized(aObj,bObj){

 // do sth with the aObj and bObj here
Run Code Online (Sandbox Code Playgroud)

}

?? 如果不是,"一次锁定一次是什么意思?".谢谢...

mutex objective-c synchronized thread-safety

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