iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   MySQL database uitlezen (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/102895-mysql-database-uitlezen.html)

Levitas 29-10-11 21:12

MySQL database uitlezen
 
1 Bijlage(n)
Beste developers,

Vandaag ben ik begonnen aan een iPhone app voor een website die ik heb. Het gaat om een wordpress website waar ik regelmatig berichten post in twee categorieën. De app bestaat tot nu toe uit enkel twee tabs: één voor elke categorie. De berichten worden in een MySQL database opgeslagen.

De bedoeling is, om deze berichten in de app uit te lezen weer te geven in een table view (althans, dat lijkt mij de makkelijkste manier?). Na wat research op het internet, is me duidelijk geworden dat het sterk afgeraden wordt om een MySQL verbinding in de app te maken. Een andere mogelijkheid is xml (voor zover ik dat heb begrepen). Dat komt in principe goed uit, want wordpress genereert automatisch rss feeds in xml per categorie.

In principe hoef ik dus alleen deze xml (als bovenstaande klopt) uit te lezen (enkel de variabelen title, description en content zijn van belang) en weer te geven in de app.

Alleen, ik heb geen flauw idee hoe dat te doen. Ik heb redelijk wat ervaring met php en mysql, maar nauwelijks C en al helemaal niet i.c.m iOS. Mijn vraag is of jullie me uit kunnen leggen hoe een xml bestand uit te lezen en weer te geven, of me eventueel door kunnen verwijzen naar een website waar dit gedocumenteerd staat.

Alvast bedankt!

PS: In de bijlagen een screenshot van wat ik tot nu toe heb. In de tabel zelf komen de eerste paar woorden (description in het xml-bestand). Als er op zo`n rij gedrukt wordt, wordt het volledige bericht (content) weergegeven.

DJ14 30-10-11 09:44

Gebruik de XML feed die Wordpress genereert. Deze kun je eenvoudig parsen in je app met behulp van NSXMLParser. Zorg wel dat je weet wat je doet, misschien is het handig om eerst wat basis tutorials over Objective-C en Cocoa Touch door te nemen?

Check hier de Apple docs: Loading… en hier een tutorial: Make NSXMLParser your friend.. » codesofa - chaotic. pragmatic. smart(ass).

Levitas 30-10-11 12:50

Citaat:

Oorspronkelijk geplaatst door DJ14 (Bericht 726800)
Gebruik de XML feed die Wordpress genereert. Deze kun je eenvoudig parsen in je app met behulp van NSXMLParser. Zorg wel dat je weet wat je doet, misschien is het handig om eerst wat basis tutorials over Objective-C en Cocoa Touch door te nemen?

Check hier de Apple docs: Loading… en hier een tutorial: Make NSXMLParser your friend.. » codesofa - chaotic. pragmatic. smart(ass).

Bedankt voor je reactie. Ik ga zeker even naar je links kijken.

Zoals ik al zei, ben ik gisteren bezig geweest met de opmaak, maar daar loop ik ook wat tegen "probleempjes" aan (waarschijnlijk simpele dingen):
Optie 1: Ik heb een Tab bar controller, die naar 2 categorieën gaat (2 view conrtrollers) met daarop een table view (gewoon gesleept op de storyboard). Op deze manier kan ik geen data in die tabel zetten. Hoe kan dit?

Optie 2: Ik heb een tab bar controller, die momenteel naar 1 table view controller gaat (en van daaruit naar een specifiek bericht). Dat werkt met statische tekst. Nu wil ik zo`n 2e table view controller maken (file -> new file), maar komt deze niet in m`n storyboard en komt het dus ook niet in m`n tab bar. Hoe kan dit?

Volgens mij is optie 2 de goede manier, maar ik krijg dan geen nieuwe table view controller in m`n storyboard.

//Edit
Optie 2 is nu gelukt. De navigatie door de app werkt nu. Volgende wat ik ga doen is kijken naar de NSXLMParser om die werkend te krijgen. Vervolgens ga ik kijken naar de definitieve opmaak (kleuren van navigation bars, icoontjes in de tabs, etc.).

Whacko 31-10-11 13:02

Wat misschien ook handig is, is om even te kijken naar de source van de Wordpress App.
Deze maakt gebruik van de xml-rpc api. Dit is wel handig als je bijvoorbeeld vanuit de app ook comments wilt kunnen toevoegen.

Levitas 31-10-11 13:18

Citaat:

Oorspronkelijk geplaatst door Whacko (Bericht 727589)
Wat misschien ook handig is, is om even te kijken naar de source van de Wordpress App.
Deze maakt gebruik van de xml-rpc api. Dit is wel handig als je bijvoorbeeld vanuit de app ook comments wilt kunnen toevoegen.

Bedankt voor de tip! Ga ik zeker ook even naar kijken. Maar eerst naar het xml-verhaal. Dat is het belangrijkste en wil ik als eerste werkend hebben. Dan kan ik daarna altijd nog een versie maken waarin je comments kunt toevoegen

Levitas 01-11-11 15:54

Ik ben even aan het nadenken over hoe ik dit kan gaan realiseren (vind ik altijd fijner dan maar gewoon te beginnen).

Als ik het goed begrijp, heb ik een class (zeg even "Parser"). In deze class wordt de url geopend, met NSURL. Vervolgens wordt deze url geparsed met NSXMLParser.

Klopt het voor zover nog wat ik zeg?
NSXMLParser heeft een bepaalde output.. Maar dan? Hoe krijg ik de data vervolgens in m`n tabellen?

Levitas 01-11-11 22:53

Oké, ik heb nu deze tutorial gevonden: Iphone Tutorial: Creating a RSS Feed Reader

Heb alle stappen helemaal doorlopen en het werkt nu, met de voorbeeld rss-feed. Echter, wanneer ik mijn eigen rss-feed gebruik, krijg ik een error: "Thread 1: Program received signal: "SIGABRT" op deze code:
Code:

int main(int argc, char *argv[]) {
   
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

Met daarnaast de volgende error in het output venster
Citaat:

2011-11-01 21:51:32.944 RssReader[8074:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: date)'
*** First throw call stack:
(0x14d1052 0x11bcd0a 0x1479a78 0x14799e9 0x14d030a 0x330f 0xeba35 0x12ae8f6 0x12baab0 0xea02d 0x2e65 0x110a59 0x10ee94 0x10feb7 0x10ee4f 0x10efd5 0x53f6a 0x166fbbd 0x173c5ea 0x1666298 0x173c16b 0x1666137 0x14a597f 0x1408b73 0x1408454 0x1407db4 0x1407ccb 0x1bc6879 0x1bc693e 0x36aa9b 0x1d3d 0x1cb5 0x1)
terminate called throwing an exceptionsharedlibrary apply-load-rules all
Current language: auto; currently objective-c
Iemand enig idee waar dat mee te maken heeft? M`n eigen RSS heeft exact dezelfde tags als het voorbeeld (title, pubDate, description en content). Het enige wat verschilt is dat mijn content afbeeldingen bevat.

viresh75 02-11-11 12:20

Citaat:

Oorspronkelijk geplaatst door Levitas (Bericht 729014)
Oké, ik heb nu deze tutorial gevonden: Iphone Tutorial: Creating a RSS Feed Reader

Heb alle stappen helemaal doorlopen en het werkt nu, met de voorbeeld rss-feed. Echter, wanneer ik mijn eigen rss-feed gebruik, krijg ik een error: "Thread 1: Program received signal: "SIGABRT" op deze code:
Code:

int main(int argc, char *argv[]) {
   
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

Met daarnaast de volgende error in het output venster


Iemand enig idee waar dat mee te maken heeft? M`n eigen RSS heeft exact dezelfde tags als het voorbeeld (title, pubDate, description en content). Het enige wat verschilt is dat mijn content afbeeldingen bevat.

Ik krijg precies dezelfde foutmelding bij het volgen van een turorial. Dit probleem is opgetreden sinds ik Xcode 4.2 heb geďnstalleerd.

Levitas 02-11-11 15:24

Citaat:

Oorspronkelijk geplaatst door viresh75 (Bericht 729265)
Ik krijg precies dezelfde foutmelding bij het volgen van een turorial. Dit probleem is opgetreden sinds ik Xcode 4.2 heb geďnstalleerd.

Ik heb het probleem ondertussen opgelost en heb de tutorial werkend gekregen voor mijn eigen rss-feed.

Vervang
Code:

setObject:date
door:
Code:

if (date != nil) [item setObject:date forKey:@"date"];
Vermoedelijk komt het doordat een bepaalde items in de rss-feed geen juiste pubDate hebben, en daardoor verkeerde/geen waardes in wilt voeren in de dictionary, waardoor de foutmelding komt.

Nu heb ik dus een ViewController waar m`n rss-feed opgehaald wordt en in een tabel wordt weergeven en een detailController waar een enkel bericht staat.
Ik heb echt geen flauw idee hoe mijn volgende stap aan te pakken: Een tab bar plaatsen, waarmee ik naar een 2e ViewController kan gaan.
Hoe kan ik dat maken?

RdJong 06-12-11 17:43

Hiervoor heb je het Developer Forum van Apple...

http://devforums.apple.com


Alle tijden zijn GMT +2. Het is nu 07:32.