21 Haziran 2015 Pazar

FMDB kullanırken garip hatalar

Siz de FMDB kullanırken ResultSet oluştururken garip garip hatalar alıyorsanız sebebi integer değerler olabilir. FMDatabase tipinden bir obje oluşturduysanız ve bu objenin executeQuery veye executeUpdate'ini kullanıyorsanız genellikle ? ile parametreleri paslarsınız. Fakat bu pasladığınız parametreler malesef mutlaka reference type olmalı. Yani bir value type olan int tipinde bir değişkeni query veya update cümlesine son parametre olarak eklerseniz garip bi hata ile karşılaşıyorsunuz. Çözümü int değerinizi parametre olarak verirken bir reference type olan NSNumber'a çevirmek.

[targetDatabase executeUpdate:@"insert into GameItems (Name, PictureFileName, IsCompleted, ItemIndex) values (?,?,?,?)",
                 name,
                 pictureFileName,
                 isCompleted,
                 itemIndex];


bu üstteki kod kırmızı ile işaretli değişken yüzünden hata vermektedir. Çözüm ise şu şekilde

[targetDatabase executeUpdate:@"insert into GameItems (Name, PictureFileName, IsCompleted, ItemIndex) values (?,?,?,?)",
                 name,
                 pictureFileName,
                 isCompleted,
                 [NSNumber numberWithInt:itemIndex]];


Umarım işinize yarar. Sevgiler.

Hiç yorum yok:

Yorum Gönder