Hitung baris di Kelas dan pilih baris untuk nomor tertentu

Saya membuat aplikasi iOS menggunakan Parse.com dan saya ingin tahu apakah ada cara untuk mengambil jumlah total baris dalam suatu kelas? Misalnya, saya memiliki kelas "MESSAGE" dengan 100 objek, apakah ada cara untuk mengambil bilangan bulat seperti:

int x = [hitung PESAN]; //sekarang x = 100;

Dan begitu saya memiliki 100 dalam variabel x saya akan mendapatkan nomor acak antara 1 dan 100, katakanlah fungsinya mengembalikan 7, apakah ada cara untuk mengambil objek di baris nomor 7?.


person iDec    schedule 25.02.2015    source sumber


Jawaban (1)


Anda dapat mengambil hitungan seperti ini:

PFQuery *query = [PFQuery queryWithClassName:@"MESSAGE"];
[query countObjectsInBackgroundWithBlock:^(int count, NSError *error) {
  // count tells you how many objects matched the query
}];

Anda bisa mendapatkan objek ke-7 seperti ini:

PFQuery *query = [PFQuery queryWithClassName:@"MESSAGE"];
// Skip the first 6, retrieve the next 1
query.skip = 6;
query.limit = 1;
[query findObjectsInBackgroundWithBlock:^(NSArray *messages, NSError *error) {
  // Now you have the 7th MESSAGE at messages[0]
}];

Dengan menggabungkannya, Anda dapat melakukan:

PFQuery *query = [PFQuery queryWithClassName:@"MESSAGE"];
[query countObjectsInBackgroundWithBlock:^(int count, NSError *error) {
  // Skip the first <random>, retrieve the next 1
  query.skip = arc4random_uniform(count);
  query.limit = 1;
  [query findObjectsInBackgroundWithBlock:^(NSArray *messages, NSError *error) {
    // Now you have a random MESSAGE at messages[0]
  }];
}];
person Ian MacDonald    schedule 25.02.2015
comment
Wow, itu cepat dan mudah dimengerti. Sepertinya ide yang cukup bagus, izinkan saya mencobanya dan saya akan memberi tahu Anda, terima kasih banyak Ian!! - person iDec; 25.02.2015
comment
Jawaban yang bagus. Bisa juga melakukan getFirstObjectInBackgroundWithBlock alih-alih .limit = 1. - person danh; 26.02.2015