小编Jos*_*ell的帖子

NSTimer的动作方法没有被调用

我有以下代码来创建一个NSTimer应该在每次触发时更新标签的代码:

.h文件

@interface Game : UIViewController
{
    NSTimer *updateTimer;

    UILabel *testLabel;
    int i;
}
-(void)GameUpdate;

@end
Run Code Online (Sandbox Code Playgroud)

.m文件

@implementation Game

-(void)GameUpdate
{
    i++;
    NSString *textToDisplay = [[NSString alloc] initWithFormat:@"Frame: %d", i];
    [testLabel setText:textToDisplay];
    NSLog(@"Game Updated");
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
    updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.01428 target:self selector:@selector(GameUpdate) userInfo:nil repeats:YES];
}

//other methods (viewDidUnload, init method, etc.)

@end
Run Code Online (Sandbox Code Playgroud)

当我运行它时,顶部会出现一个标签,显示"0"但不会改变.它让我相信我错过了如何NSTimer设置.我错过了什么?

我使用断点和(如您所见)记录以查看方法是否实际运行,而不是其他一些错误.

cocoa-touch objective-c nstimer ios

0
推荐指数
2
解决办法
3214
查看次数

覆盖keyDown:在NSTableView类别中禁用箭头键处理

我有一个NSTableView我的默认行为有一些问题.

如果我keyDown:在类别中重写了方法,如下所示:

- (void) keyDown:(NSEvent *)event {
    [super keyDown:event];
}
Run Code Online (Sandbox Code Playgroud)

我无法再使用键盘箭头键更改行选择.这是为什么?

cocoa objective-c event-handling nstableview objective-c-category

0
推荐指数
1
解决办法
1073
查看次数

通过scanf输入时,双打表现得很奇怪

我在Objective-C中实现了一个用于OOP练习的小cmd计算器.我正在获取双打输入scanf()并获取输入,我用于%f格式化然后将其放入double变量中.由于某种原因,它总是读取输入奇数.我不知道发生了什么,但当我将所有类型更改为int时,它完美地完成了.

macos command-line scanf objective-c

0
推荐指数
1
解决办法
400
查看次数

将自定义字体设置为视图中的所有标签

在Xcode 4中,如果字体未安装在操作系统中或未显示在IB中的字体列表中,则无法通过Interface Builder设置视图标签的字体系列.

由于某些视图中的所有标签都使用相同的字体,因此我需要知道是否有一种简单快捷的方法将所有标签设置为相同的字体系列,而不是逐个设置其系列字体.

cocoa-touch uilabel ios

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

使用dictionaryWithObjects时复制键会发生什么:forKeys:?

如果我使用dictionaryWithObjects:forKeys:,并且我的数组键碰巧有重复,会发生什么?我假设重复键的最后一个实例将是与键相关联的值; 那是对的吗?

cocoa objective-c nsdictionary

0
推荐指数
1
解决办法
442
查看次数

stringWithFormat是否创建了retain +1实例?

我在NSString课堂上宣布一个类型的ivar .要初始化此ivar的值,我使用以下代码:

NSString *myVar;

-(void)inAnyMethod
{
   myVar = [NSString stringWithFormat:@"%@",theValue];
}
Run Code Online (Sandbox Code Playgroud)

我必须释放这个伊娃吗?根据我的理解,这不是我的责任.但在大多数情况下,我以这种方式使用的字符串会导致泄漏.

我错过了什么?

memory-leaks memory-management objective-c nsstring retain

0
推荐指数
1
解决办法
968
查看次数

根据字符串长度更改UILabel中的字体大小

假设我有一个UILabel涵盖应用程序整个窗口的内容.在此标签中显示不同长度的随机文本.是否可以根据文本长度更改文本字体大小?

cocoa-touch objective-c uilabel

0
推荐指数
1
解决办法
2676
查看次数

Objective-c中的AES256解密问题

我正在尝试使用以下代码段解密文件,该文件使用32字节密钥加密.因此,当我尝试加密文件数据时,一切正常.但是当我尝试解密时,程序甚至不会if (cryptStatus == kCCSuccess)在CryptoExtensions.m中传递条件.我真的很累,想出一个问题.我试图使用Base64解码,但我的文件以UTF8编码保存,所以当我把它的内容放在NSData的日志中时我没有问题:

NSData *fileData = [[[NSData alloc] initWithContentsOfFile:destPath] autorelease];

NSLog(@"File data:%@",[[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding]);
Run Code Online (Sandbox Code Playgroud)

但是当我试图解密它时,我nilCryptoExtensions方法获得:

NSData *aesResponse = [fileData AES256DecryptWithKey:@"4QXcCZlgRAIchiaqkMVpF3nkpARmdL3z"];
NSLog(@"AES:%@",[[NSString alloc] initWithData:aesResponse encoding:NSUTF8StringEncoding]);
Run Code Online (Sandbox Code Playgroud)

这是crypto片段的内容:

CryptoExtensions.h

#import <Foundation/Foundation.h>
@interface NSData (CryptoExtensions)
- (NSData*)AES256EncryptWithKey:(NSString*)key;
- (NSData*)AES256DecryptWithKey:(NSString*)key;
@end
Run Code Online (Sandbox Code Playgroud)

CryptoExtensions.m

#import "CryptoExtensions.h"
#import <CommonCrypto/CommonCryptor.h>
@implementation NSData (CryptoExtensions)
- (NSData*)AES256EncryptWithKey:(NSString*)key {
    // 'key' should be 32 bytes for AES256, will be null-padded otherwise
    char keyPtr[kCCKeySizeAES256 + 1]; // room for terminator (unused)
    bzero(keyPtr, sizeof(keyPtr)); // fill …
Run Code Online (Sandbox Code Playgroud)

objective-c

0
推荐指数
1
解决办法
7224
查看次数

是什么让这个片段不是一个严格的quine?

有人知道为什么这不是一个严格的quine?

_0='_0=%r;print _0%%_0';print _0%_0
Run Code Online (Sandbox Code Playgroud)

python quine

0
推荐指数
1
解决办法
106
查看次数

当它到达前台时重新启动应用程序

有一个属性被调用Application does not run in background,如果我们设置它YES,应用程序将在它进入后台时结束.但我无法找到这个属性.有人能告诉我这个设置的位置吗?

cocoa-touch ios

0
推荐指数
1
解决办法
131
查看次数