2012-04-09 30 views
5

Tôi có yêu cầu trong đó tôi có Video được phát bằng cách sử dụng MPMediaPlayerController. Cùng với video tôi có hai nút mà tôi cần phải nắm bắt thời gian phát lại hiện tại khi nút được nhấp và lưu trữ tất cả các nhấp chuột có liên quan riêng lẻ. Tôi có thể nhận thời gian phát lại hiện tại của video bằng thuộc tính "currentPlaybackTime" trả về NSTimeInterval. Nhưng ai đó có thể giúp tôi về cách lưu trữ tất cả các giá trị NSTimeInterval vào một số NSMutableDictionary. Tôi đã thử các cách sau:Làm thế nào để lưu trữ các giá trị NSTimeInterval vào NSMutableArray?

-(void)onClickOfGood { 
    NSLog(@"The current playback time in good:%g",moviePlayerController.currentPlaybackTime); 
    currentPlaybackTime = moviePlayerController.currentPlaybackTime; 
    //NSArray *arrayContainsGoodClicks = [[NSArray alloc]initWithObjects:currentPlaybackTime, nil ]; 
    NSNumber *goodTimeIntervals = [NSNumber numberWithDouble:currentPlaybackTime]; 
    NSMutableArray *arrayContainsGoodClicks = [[NSMutableArray alloc]initWithObjects:goodTimeIntervals,nil ]; 
    NSLog(@"The total count of Array is: %i",[arrayContainsGoodClicks count]);} 

Nhưng sau mỗi lần nhấp vào nút tốt, tôi nhận được chỉ số Mảng là chỉ 1. Ai đó có thể vui lòng ném ánh sáng vào nơi tôi đang gặp sự cố không?

+3

Bạn có đang tạo mảng mới mỗi lần nhấn nút không? – meggar

+0

Tôi đã sửa chữa sai lầm .. –

Trả lời

3

Nhưng mọi sau khi bấm vào nút tốt tôi đang nhận được Array tính là chỉ 1.

này không đáng ngạc nhiên, xem xét rằng bạn đang tạo ra một thương hiệu mới NSMutableArray trên dòng trước đó.

Để khắc phục điều này, bạn cần phải thực hiện một NSMutableArray *arrayContainsGoodClicksdụ biến (AKA Ivar), khởi tạo nó để [NSMutableArray array] trong initializer định của bạn, và sau đó sử dụng

[arrayContainsGoodClicks addObject:goodTimeIntervals]; 

để thêm đối tượng vào mảng.

Nếu bạn muốn sử dụng NSMutableDictionary thay vào đó, chiến lược sẽ giống hệt nhau, ngoại trừ bạn sẽ cần quyết định đối tượng mà bạn muốn sử dụng làm khóa duy nhất cho NSDictionary. Cũng nên nhớ rằng NSMutableDictionary không được đặt hàng, vì vậy bạn có thể cần phải chăm sóc sắp xếp mỗi lần bạn hiển thị các mục từ điển của mình cho người dùng.

+0

Cảm ơn rất nhiều ..Tại sao tôi đã thử bản thân mình và đáng ngạc nhiên đó là cùng một gợi ý. Cảm thấy tuyệt vời rằng tôi đã đi đúng hướng .. [arrayContainsGoodClicks addObject: goodTimeIntervals]; NSLog (@ "Tổng số mảng là:% i", [arrayContainsGoodClicks count]); điều này đã làm các trick .. –

1

Bạn cần phải tạo arrayContainsGoodClicks chỉ một lần (trong phương pháp init ví dụ) và sau đó thêm giá trị cho mảng này trong xử lý nút bấm của bạn:

//.h 
NSMutableArray *arrayContainsGoodClicks; 

//.m - init 
arrayContainsGoodClicks = [NSMutableArray array]; 

//.m - button handler 
[arrayContainsGoodClicks addObject:goodTimeIntervals]; 
+0

Ya đã nhận nó. Cảm ơn sự giúp đỡ ... –

1

Bạn cần phải tạo mảng của bạn và lưu nó như một Ivar.

@property (retain, nonatomic) NSMutableArray *clicksArray; 
... 
@synthesize clicksArray; 

Bây giờ trong phương pháp init của bạn tạo mảng như ..

self.clicksArray = [NSMutableArray array]; 

Và thêm đối tượng mảng mỗi lần như vậy -onClickOfGood của bạn sẽ trở thành một cái gì đó giống như ...

... 
[self.clicksArray addObject: goodTimeIntervals]; 
NSLog(@"The total count of Array is: %i",[self.clicksArray count]); 
+0

Ya ya ..got it..Cảm ơn sự trợ giúp .. –

Các vấn đề liên quan