Форум программистов, компьютерный форум CyberForum.ru

Swift

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
mdpromo
0 / 0 / 0
Регистрация: 24.10.2014
Сообщений: 2
#1

Массив Swift - Swift

24.10.2014, 18:44. Просмотров 1775. Ответов 2
Метки нет (Все метки)

Есть кусок кода Swift в Xcode:

Objective-C
1
2
3
4
5
6
7
8
9
    var pageData = NSArray()
 
    override init() {
        super.init()
        // Create the data model.
       let dateFormatter = NSDateFormatter()
        pageData = dateFormatter.monthSymbols
 
     }
Задача заменить месяцы и вставить свой массив в pageData. Убираю лишнее, вставляю таким образом
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    var pageData = NSArray()
 
    override init() {
        super.init()
        // Create the data model.
       
        pageData = [
        "Cтрока 1",
        "Cтрока 2",
        "Cтрока 3",
        ...
        ]
 
     }
Итог: Если строк несколько, то все работает. Но если их много, Xcode зависает и не компилирует.

Вопрос знатокам, как решить данную проблему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2014, 18:44     Массив Swift
Посмотрите здесь:

Цикл for / массив в языке Swift - Swift
Я толко начала изучать Swift и при написания простого приложения "Генератор случайных чисел" столкнулась с такой проблемой: когда...

Конвертер из swift в ObjC - Swift
Уважаемые коллеги Не может ли кто-то из вас подсказать, существует ли "в природе" опенсорсный конвертер исходного кода из swift в...

Восклицательный знак в Swift - Swift
Всем привет! Начал опыты со Swift, и тут же столкнулся с модификаторами ? и ! (назову их так) при декларации переменных. С...

Swift JSON Parsing - Swift
Добрый день! Пытаюсь пропарсить JSON, который я получаю по URL запросу. Проблем не возникало пока JSON не имел многоуровневую...

Swift Казалось бы просто - Swift
Пытаюсь в xcode сделать примитивную игру. Суть в том что бы на экране появлялась сначала 1 кнопка и давалось 2 секунды на нажатие, если...

Swift is open source! - Swift
Всем привет! Примерно час назад Swift выпустили в открытое плавание! :yahoo: https://swift.org/ https://github.com/apple/ Что бы...

SWIFT 3 и WebSocket в Xcode 8 - Swift
Здравствуйте. Собственно вопрос, есть ли возможность использовать WebSocket в Xcode8 (SWIFT 3). Нативных АПИ не нашел, попробовал...

Как установить Swift? - Swift
Доброго времени суток Простите за дилетантский вопрос. Скажите можно ли программировать на Swift не используя OS Mac? Читал что сейчас...

Мутирование массива - Swift - Swift
Доброго времени суток! Столкнулся с проблемой, которую уже 3й день не могу решить: Я отправляю запрос на сервер, и получаю данные,...

Сильная связь Swift - Swift
Дорогие форумчане, объясните, пожалуйста, в чем разница между строчками "pers!.apartment = apart" и "pers?.apartment = apart". Единственное...

Дружит ли swift с геопозицией? - Swift
Здравствуйте, может кто-то знает, есть ли возможность взаимодействовать с определением геопозиции?

События в Cocoa Swift - Swift
У меня нет совершенно никакого опыта в написании приложений под мак или айфон, но сейчас понадобилось написать приложение для Mac OS и я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
24.10.2014, 22:14     Массив Swift #2
Цитата Сообщение от mdpromo Посмотреть сообщение
Но если их много, Xcode зависает и не компилирует.
А много это сколько?
mdpromo
0 / 0 / 0
Регистрация: 24.10.2014
Сообщений: 2
26.10.2014, 14:56  [ТС]     Массив Swift #3
Добавлено через 2 минуты
zulkis, Всего строк 50 вставляю (когда строк 10-15 - работает).

Добавлено через 10 часов 58 минут
Как будет правильно задать значения для массива? Правильно ли это вообще задать значения внутри класса?

Добавлено через 14 часов 58 минут
Если задать значения массива вне класса сразу таким образом

var pageData = ["Cтрока 1", "Cтрока 2", "Cтрока 3",]

то как потом определить номер элемента в массиве?

indexOfObject( ) теперь не работает. Xcode выдает ошибку: '[String]' does not have a member named 'indexOfObject'

Добавлено через 1 час 43 минуты
Вот весь код:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import UIKit
 
/*
A controller object that manages a simple model -- a collection of month names.
 
The controller serves as the data source for the page view controller; it therefore implements pageViewController:viewControllerBeforeViewController: and pageViewController:viewControllerAfterViewController:.
It also implements a custom method, viewControllerAtIndex: which is useful in the implementation of the data source methods, and in the initial configuration of the application.
 
There is no need to actually create view controllers for each page in advance -- indeed doing so incurs unnecessary overhead. Given the data model, these methods create, configure, and return a new view controller on demand.
*/
 
 
class ModelController: NSObject, UIPageViewControllerDataSource {
 
   var pageData = NSArray()
 
 
    override init() {
       super.init()
        // Create the data model.
     let dateFormatter = NSDateFormatter()
     pageData = dateFormatter.monthSymbols
 
   }
 
 
 
    func viewControllerAtIndex(index: Int, storyboard: UIStoryboard) -> DataViewController? {
        // Return the data view controller for the given index.
        if (self.pageData.count == 0) || (index >= self.pageData.count) {
            return nil
        }
 
        // Create a new view controller and pass suitable data.
        let dataViewController = storyboard.instantiateViewControllerWithIdentifier("DataViewController") as DataViewController
        dataViewController.dataObject = self.pageData[index]
        return dataViewController
    }
 
    func indexOfViewController(viewController: DataViewController) -> Int {
        // Return the index of the given data view controller.
        // For simplicity, this implementation uses a static array of model objects and the view controller stores the model object; you can therefore use the model object to identify the index.
         if let dataObject: AnyObject = viewController.dataObject {
 
            return self.pageData.indexOfObject(dataObject)
 
        } else {
            return NSNotFound
        }
    }
 
    // MARK: - Page View Controller Data Source
 
    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        var index = self.indexOfViewController(viewController as DataViewController)
        if (index == 0) || (index == NSNotFound) {
            return nil
        }
 
        index--
        return self.viewControllerAtIndex(index, storyboard: viewController.storyboard!)
    }
 
    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        var index = self.indexOfViewController(viewController as DataViewController)
        if index == NSNotFound {
            return nil
        }
 
        index++
        if index == self.pageData.count {
            return nil
        }
        return self.viewControllerAtIndex(index, storyboard: viewController.storyboard!)
    }
 
}
Нужно сюда вместо названий месяцев (pageData = dateFormatter.monthSymbols) вставить свой масив из строк.
Yandex
Объявления
26.10.2014, 14:56     Массив Swift
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru