Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
2.0k kez görüntülendi
ios development kategorisinde tarafından

Merhaba Akadaşlar,

Yaptığım araştırmalar sonucunda pek bir sonuca ulaşamadığım için sizlere sormak istedim. Uygulamada yapmak istediğim kullanıcının telefonu ile kendi local veritabanının bulunduğu bilgisayar aynı ağda (wifi) olduğu sürece veritabanında bir update olduğu zaman bildirim göndermesi bu aşamada sql ile nasıl connection kuracağımı ve sorgu (select) vs. yapacağımı bulamadım. 3. parti swift ile yazılmış bir kütüphanede bulamadım bu konuda bilgisi olan varsa paylaşırsa sevinirim. Bu connection olayını android'te jcifs kütüphanesini kullanarak çok rahat bir şekilde yapmıştım.

İyi Çalışmalar.

1 cevap

0 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

Bu işe özel hazır bir kütüphane var mıdır bilemedim.
Socket üzerinden bir şeyler yapmak yerinde olur kanaatimce.
IOS tarafında CocoaAsyncSocket bu iş için kullanılabilecek güzel bir Socket kütüphanesi.

tarafından

Yasin abi Objective-C de yapılmış olan bu (SQLClient) library işimi görecek gibi cocoapods ile uygulamama ekledim ama bunu swift kullanarak nasıl çalıştıracağım.

tarafından
tarafından
+1

objective-C kütüphanesini swift'e bridgingHeader kullanarak eklemen lazım.

proje altında yeni bir header dosyası oluştur.
"BirdgingHeader.h" gibi
kütüphaneyi bu dosya içerisinde import et.

#import "<SQLClient/SQLClient.h>"

targets > build settings > swift compiler general altındaki
Objective-C Bridging Header satırında (Debug ve Release satırlarına)
oluşturduğun BirdgingHeader.h dosyasının yolunu belirt.

"myProject/BirdgingHeader.h"

tarafından
tarafından düzenlendi

yasin abi bridgingHeader'ı ekledim ve header(SQLClient.h) ve (SQLClient.m) olarak 2 file oluşturdum şu an swift class'ında buralara erişim yapabiliyorum. Şuanki sıkıntım aşağıdaki kodu SQLClient.m dosyasında bir fonksiyona eklediğim de bir çok hata alıyorum.

Hata Resmi

> SQLClient* client = [SQLClient sharedInstance];
client.delegate = self;
[client connect:@"server:port" username:@"user" password:@"pass" database:@"db" completion:^(BOOL success) {
    if (success)
    {
      [client execute:@"SELECT * FROM Users" completion:^(NSArray* results) {
        for (NSArray* table in results)
          for (NSDictionary* row in table)
            for (NSString* column in row)
              NSLog(@"%@=%@", column, row[column]);
        [client disconnect];
      }];
    }
}];

//Required
- (void)error:(NSString*)error code:(int)code severity:(int)severity
{
  NSLog(@"Error #%d: %@ (Severity %d)", code, error, severity);
}
tarafından
+1

SQLClient'in delegate metodlarına erişebilmek için header dosyası içerisine SQLClientDelegate'i eklemelisin.
şurada olduğu gibi yani.

tarafından

SQLClientDelegate

bu şekilde hata veriyor yasin abi ?

tarafından

hımmm.
SQLClient kütüphanesini nasıl ekledein projene?
cocoapods'mu kıullandın, yoksa manuel mi?
bridgingheader'ı halledebildin mi?
orada bir sıkıntı olabilirmi acaba.

tarafından

Yasin abi çok teşekkür ederim, Cocoapods kullandım, şu an bağlandım sorgu yapabiliyorum :) bu konu başlığı altında çözüm olsun diye aynı bağlantıyı kullanacak arkadaşlar içinde ilerleyen günlerde demo bi proje oluşturup buraya atayım...

tarafından

rica ederim ibrahim. Yardımcı olabildiysem ne mutlu.

...