当我试图从字典中获取BOOL时,我得到:
BOOL isTrue = [someDict objectForKey: @"isTrue"];
Run Code Online (Sandbox Code Playgroud)
我明白了:
Initialization makes integer from pointer without a cast
Run Code Online (Sandbox Code Playgroud)
我通过这样设置字典:
self.someDict = [[NSMutableDictionary alloc]
initWithObjectsAndKeys:
self.isTrue, @"isTrue",
nil];
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Dav*_*ong 19
使用:
BOOL isTrue = [[someDict objectForKey:@"isTrue"] boolValue];
Run Code Online (Sandbox Code Playgroud)
在a BOOL中存储a的唯一方法NSDictionary是将其装入NSNumber对象中.A BOOL是原始的,字典只保存对象.
同样,要BOOL在字典中存储a ,请使用:
[someDict setObject:[NSNumber numberWithBool:isTrue] forKey:@"isTrue"];
Run Code Online (Sandbox Code Playgroud)
编辑:(回应评论)
有两种方法可以将其表示为@property.一种是将ivar声明为a BOOL,另一种是将其声明为a NSNumber.
对于第一种情况,ivar是: BOOL isTrue;和属性是@property BOOL isTrue;(我忽略了命名约定,显然).
对于NSNumber,伊瓦尔是:NSNumber * isTrue;和财产是@property (nonatomic, retain) NSNumber * isTrue;.如果您有这条路线走,你可能要提供第二setter方法(setIsTrueBool或某事),让您刚刚传递YES或NO,然后你就拳击自己.否则任何打电话的人都必须自己做拳击.
我个人很可能选择#1选项,但这实际上取决于课程的目的.
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |