Çalıştığım bir ağ uygulamasına sahibim. Yapmak istediğim, belirli IPv4 Adres Eki kümelerine sayı ekleyebilmek ve çıkartmak.NSString türünde bir IPAdresinin NSInteger için Dönüştürülmesi ve Kullanılması
Örnek. Cihazın mevcut IPAdresi: 10.43.223.71 olduğunu söyleyeyim ama 2. octet üzerine 40 eklemek istiyorum, bu da 10.83 yapar ve son sekizliye yeni bir dize .210 koydu. Yeni oluşturulmuş IPAdresi'ni yapma 10.83.223.210
Şimdi, IPAddress'i almak için NSString'i kullanabileceğimi biliyorum (Zaten sahip olduğum). Daha sonra NSMutableArray türünü NSString kullanabilir, ardından componentsSeperatedByString "i kullanabilirim." her sekizli ayrı ayırmak için. Bu bölümü zaten yaptım.
Bundan sonra ne yapmam gerektiği konusunda biraz tereddüt ettiğim yer burası. Şimdi NSString'den NSInteger'e bir dönüşüm başlatmalı mı? Her sekizliyi geçici olarak kaydederim ve/veya nasıl kaydedersem, böylece daha sonra belirli sekizleri yeniden ekleyebilirim.
Hızlı yanıtınızı gerçekten takdir ediyorum. Kodu basit ve temiz tutmak için özel bir sınıf oluşturmaya karşı değilim. Sanırım en büyük kaygım/soru, 2. sekizli ile ikinci sekizli eklenmesi gereken sayısal bir değerdir ... ama ülkeye bağımlı. Yani ABD'de +40, Kanada'da +100, vb. Olurdu. Son sekizli için, son sekizli bir uzak JSON dosyası tarafından sağlanacaktır. Zaten NSJSONSerialization yerleşik var ve bu şişer. Takılı olduğum 2.Octet'i manipüle ediyor. IPv4 sınıfını ve uygulamasını yapılandırma hakkında nasıl giderdiniz? –
Bu "IPv4" sınıfının bu ayrıntılardan hiçbiri olmaz. Dizeyi basitçe dört tam sayıya böler ve 4 değerin her birini almanızı ve ayarlamanızı sağlayan yöntemleri kullanır. Bu kadar. Yani "10.43.223.71" gibi bir dizeyle bir örnek oluşturursunuz. Daha sonra 2. sekizliye 40 eklemek istiyorsanız, 2. değer için örnek isteyiniz (ve 43 olsun). Ona 40 eklersiniz. Ardından, ikinci sekizli için yeni değeri örneğe geçirirsiniz. – rmaddy
Ne dediğini görüyorum! Bu harika bir fikir! Bu mantıklı ve oldukça basit ama zarif. Görüşlerinizi çok takdir ediyorum! –