相关疑难解决方法(0)

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

什么时候我应该在Objective-C中使用nil和NULL?

这是示例代码:

NSDictionary *myDictionary = [NSDictionary dictionary];
NSNumber *myNumber = [myDictionary valueForKey: @"MyNumber"];
NSLog(@"myNumber = %@", myNumber); // output myNumber = (null)

if (myNumber == nil)
    NSLog(@"test 1 myNumber == nil");

if (myNumber == NULL)
    NSLog(@"test 2 myNumber == NULL");

if ([myNumber isEqual:[NSNull null]])
    NSLog(@"test 3 myNumber == [NSNull null]");
Run Code Online (Sandbox Code Playgroud)

我什么时候应该使用nil,NULL和[NSNull null]?

null objective-c nsnull

165
推荐指数
9
解决办法
11万
查看次数

如何在iOS中检查NSArray为null或为空?

在NSArray是alloc和init之后,如果NSArray中没有添加任何内容,如何检查它是null还是空?

谢谢.

iphone ipad ios

53
推荐指数
5
解决办法
7万
查看次数

是否可以将NULL传递给块参数?

当我进入NULLnil进入完成区时,iOS不会对我尖叫,animateWithDuration:animations:completion:但这是否意味着它没关系?或者打开一个空的更好^{ }

iphone objective-c ipad ios

15
推荐指数
2
解决办法
7398
查看次数

什么是最好的描述?真的是什么?

目前我把它理解为一种"空对象".但究竟是什么呢?

null cocoa cocoa-touch objective-c

13
推荐指数
3
解决办法
2805
查看次数

iOS:如何检查"int"值是否等于"nil"

我在我的一个方法中定义了一个int值:

int value = [self someMethodThatGetsAnINT];

后来我有一些"ifs"检查这个值.

我怎么表达:if(value == nil)

当我尝试这样直观的代码编写时,我得到一个警告说:

语义问题:指针和整数之间的比较('int'和'void*')

int null if-statement ios

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

ARC,桥接演员和GHUnit

我正在关注http://gabriel.github.com/gh-unit/docs/appledoc_include/guide_testing.html上的教程.问题是我的项目使用ARC而GHUnit没有.我管理过以前的错误,但现在我应该做桥接演员,我从未使用过,而且我迷路了.

NSString *string1 = @"a string";
GHAssertNotNULL(string1, nil); //error here
Run Code Online (Sandbox Code Playgroud)

错误描述:将Objective-C指针类型'NSString*'隐式转换为C指针类型'const void*'需要桥接转换.

任何帮助欢迎:)

objective-c gh-unit automatic-ref-counting

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

nil和NULL之间的区别

可能重复:
Objective-C中的NULL与nil
Objective-C:NULL,nil和@""之间有什么区别?

我有一个简单的问题,我的目标变量中有NULL值.它只需输入if条件.我必须检查如果变量目标长度大于零且没有空值则输入条件.

当我使用NULL或零比较

谢谢

在此输入图像描述

iphone ios

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

如果我将指针设置为nil,自动引用计数是否释放对象?

如果我将指针设置为nil或将指针指定给另一个对象,自动引用计数是否释放对象?

例如做类似的事情:

//in .h file

@interface CustomView : UIView
{
   UIView *currentView;
}


// in .m file:

-(void)createView1
{
   currentView = [[UIView alloc] init];
   [self addSubview:currentView];
}

-(void)createView2
{
   [currentView removeFromSuperview];

   // does the former view get released by arc
   // or does this leak?
   currentView = [[UIView alloc] init];
   [self addSubview:currentView];
}
Run Code Online (Sandbox Code Playgroud)

如果此代码泄漏,我将如何正确声明*currentView?或者我如何让ARC"释放"当前视图?谢谢!

cocoa-touch ios automatic-ref-counting

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

无效时,NSTimer在Iphone上与EXC_BAD_ACCESS崩溃

我在我的应用程序中设置了两个计时器,每隔几秒重复一次.除非是时间使计时器无效,否则一切正常.当手机被锁定时,我想让这些计时器无效,然后在手机解锁时重新创建它们.

我使用通知来实现何时无效/创建计时器.

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_didBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_willResigneActive:) name:UIApplicationWillResignActiveNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

这是notify_didBecomeActive方法包含的内容:

clockTicker = [[NSTimer scheduledTimerWithTimeInterval: 1  
                                            target: self  
                                          selector: @selector(showActivity)  
                                          userInfo: nil  
                                           repeats: YES] retain];

alarmTicker = [[NSTimer scheduledTimerWithTimeInterval: CONST_ALARMTIMER  
                                               target: self  
                                             selector: @selector(checkAndLaunchAlarm)  
                                             userInfo: nil  
                                              repeats: YES] retain];
Run Code Online (Sandbox Code Playgroud)

这个notify_willResigneActive方法包含:

if (alarmTicker) {
    [alarmTicker invalidate];
    [alarmTicker release];
    alarmTicker = NULL;
}

if (clockTicker) {
    [clockTicker invalidate];
    [clockTicker release];
    clockTicker = NULL;
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我在第二个计时器上调试这个无效时,我得到了错误.奇怪的是,如果我切换定时器的命令(比如首先使clockTicker失效)..我仍然在第二个定时器上得到错误.

我能做错什么?

谢谢,莱昂纳多

iphone exc-bad-access objective-c nstimer ios

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

Objective-c dealloc的布尔值

我怎么dealloc一个布尔值?

以下方式解除分配给我一个警告:指向整数转换的不兼容指针从'void*'分配给'BOOL'(又名'signed char')

- (void)dealloc {
    self.booleanVar = nil;
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

也许我应该澄清一下,这是一个从NSObject继承的简单类.

我正在使用你在Cocoa Touch类中看到的self.var = nil模式.假设它是NSString*而应该在dealloc方法中使用self.var = nil还是[var release] ?我在这里有点困惑.

boolean objective-c dealloc

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

NSString内部 - 长度如何工作?

我有一个关于NSString内部的问题.我想检查一个字符串长度,基本上我想知道NSString每次都知道它的长度/计数/计数和缓存结果.

我应该存储它的长度并每次计算或调用长度方法吗?

为了测试一个字符串,我可以测试nil或者询问它的长度.

if (str != nil) {
  // compute
}

if ([str length]) {
  // compute
}
Run Code Online (Sandbox Code Playgroud)

哪一个最快?哪一个内存效率更高?

谢谢

iphone performance cocoa cocoa-touch objective-c

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

我无法捕获FMDB空结果集

我在从FMDB捕获空结果集时遇到问题.代码如下.我从数据库打开和关闭以及NSLog"1"获取NSLog,但是在If语句中没有一个!如果我在数据库中有数据很好,但我想在数据库为空时捕获并编辑结果.

    [self openDatabase];

NSNumberFormatter *nfcurrency = [[NSNumberFormatter alloc]init];
[nfcurrency setNumberStyle:NSNumberFormatterCurrencyStyle];
[nfcurrency setLocale:[NSLocale currentLocale]];

FMResultSet *result = [[self getDatabase]executeQuery:@"SELECT BFNeeded FROM tblBets ORDER BY pk DESC LIMIT 1,1;"];
//FMResultSet *result = [[self getDatabase]executeQuery:@"SELECT BFNeeded FROM tblBets ORDER BY pk DESC LIMIT 1,1;"];
NSLog(@"1");
if (result == NULL) {
    NSLog(@"Last BFNeeded Result = nil");
} else {
    while ([result next]) {
        NSLog(@"HERE");
        NSString *lastBFNeeded = [nfcurrency stringFromNumber:[NSNumber numberWithDouble:[result doubleForColumn:@"BFNeeded"]]];
        NSLog(@"lastBFNeeded=%@",lastBFNeeded);
    }
}

NSLog(@"ClosingDB");
[self closeDatabase];
Run Code Online (Sandbox Code Playgroud)

获得第一次回复后继续:

我不能让hasAnotherRow按预期工作.我有这个代码:

FMResultSet *result = [[self getDatabase]executeQuery:@"SELECT …
Run Code Online (Sandbox Code Playgroud)

iphone xcode fmdb ios

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