Objective c NSMutableArray计数未使用数组更新
我有一个NSMutableArray,初始化如下:Objective c NSMutableArray计数未使用数组更新,objective-c,binding,xcode4,Objective C,Binding,Xcode4,我有一个NSMutableArray,初始化如下: - (id)init { self = [super init]; if (self) { playlist = [[NSMutableArray alloc] init]; } return self; } 我正在用它填充一个表。我有一种计算数组中项目数的方法: - (NSUInteger)trackCount { tracks = [playlist count]; NSLo
- (id)init
{
self = [super init];
if (self) {
playlist = [[NSMutableArray alloc] init];
}
return self;
}
我正在用它填充一个表。我有一种计算数组中项目数的方法:
- (NSUInteger)trackCount
{
tracks = [playlist count];
NSLog(@"Number of tracks = %lx", tracks);
return tracks;
}
我有一个标签绑定到我的appDelegate上,带有模型键路径trackCount
,但是标签在添加轨迹时不会更新(日志也不会更新)。我做错了什么
由于表中的行数应该总是相同的,所以获取表中的行数是否更有意义和/或更容易
谢谢或者您尚未初始化阵列
播放列表
playlist = [[NSMutableArray alloc] init];
或者您没有调用trackCount
方法
NSUInteger someValue=[self trackCount];
您是否已将播放列表正确注册为 您需要指定播放列表对象的更改意味着
trackCount
将更改
这都是我的一部分
示例
从我给你的文档的链接中或多或少地得到了准确的信息
将此添加到您的实现文件:
+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key {
NSSet *keyPaths = [super keyPathsForValuesAffectingValueForKey:key];
if ([key isEqualToString:@"trackCount"]) {
NSArray *affectingKeys = @[@"playlist"];
keyPaths = [keyPaths setByAddingObjectsFromArray:affectingKeys];
}
return keyPaths;
}
keypathsforvaluesafectingvalueforkey:
是nskeypalueobservingprotocol
的一部分
这段代码的作用是,对播放列表的任何更改都会触发trackCount的更改。因此,当播放列表发生更改时,trackCount的任何观察者都会收到trackCount可能发生更改的通知。您是否完成了播放列表的更改在调用此方法之前的某个地方?
-count
起作用,而其他方法则不起作用!你能再给我们看一些代码吗。你在哪里设置元素,比如曲目int、播放列表数组、你所指的标签等等?以及曲目的类型是什么是整数还是其他什么?哇,这是一个快速下降的投票。。。我在标题中将跟踪
声明为整数
。和init
方法中的playlist=[[NSMutableArray alloc]init]
。我在interface builder中设置了标签。你能给我一些正确调用方法的指导吗?我没有这样做,我也不完全确定如何实现它。任何帮助都将不胜感激。