Вопросы с тегами [objective-c++]

1

голосов
2

ответ
1.7k

Просмотры

Установите значение ключа в случае NSInteger

Я пытаюсь установить значение в основных данных с помощью SetValue: forKey: но это бросает ошибку: (Использование необъявленной идентификатора:. «NewID»} при попытке сохранить NSInteger Может кто-нибудь предложить правильный синтаксис NSInteger NewID = lastID? +1 [запись SetValue: NewID forKey: @ "localid"]; // ошибка Got подобную ошибку, когда я попытался SetObject вместо SetValue
user1904273
1

голосов
1

ответ
2k

Просмотры

IOS - объединить два видео в один видео файл со звуком

Я хочу, чтобы объединить 2 видео файлы с одного файла с аудио. Я могу объединить 2 видео файлов, но после слияния ouptut видео файла не имею аудио звука. Даже как старый видеофайл имеет собственный audio.I есть с этим руководством: https://www.raywenderlich.com/13418/how-to-play-record-edit-videos-in-ios Любой suggesiton будет большой. Спасибо, ребята. мой код: - (IBAction) MergeAndSave: (идентификатор) отправитель {если (! firstAsset = ноль && secondAsset = ноль) {[ActivityView startAnimating]; // Создать AVMutableComposition Object.This объект будет содержать наш многократный AVMutableCompositionTrack. AVMutableComposition * mixComposition = [[AVMutableComposition Alloc] инициализации]; // видеодорожка AVMutableCompositionTrack * firstTrack = [mixComposition addMutableTrackWithMediaType: AVMediaTypeVideo preferredTrackID: kCMPersistentTrackID_Invalid]; [FirstTrack insertTimeRange: CMTimeRangeMake (kCMTimeZero, firstAsset.duration) ofTrack: [[firstAsset tracksWithMediaType: AVMediaTypeVideo] objectAtIndex: 0] atTime: kCMTimeZero ошибка: ноль]; AVMutableCompositionTrack * secondTrack = [mixComposition addMutableTrackWithMediaType: AVMediaTypeVideo preferredTrackID: kCMPersistentTrackID_Invalid]; [SecondTrack insertTimeRange: CMTimeRangeMake (kCMTimeZero, secondAsset.duration) ofTrack: [[secondAsset tracksWithMediaType: AVMediaTypeVideo] objectAtIndex: 0] atTime: ошибка firstAsset.duration: ноль]; // аудиодорожка если (audioAsset = ноль!) {AVMutableCompositionTrack * AudioTrack = [mixComposition addMutableTrackWithMediaType: AVMediaTypeAudio preferredTrackID: kCMPersistentTrackID_Invalid]; [AudioTrack insertTimeRange: CMTimeRangeMake (kCMTimeZero, CMTimeAdd (firstAsset.duration, secondAsset. длительность)) ofTrack: [[audioAsset tracksWithMediaType: AVMediaTypeAudio] objectAtIndex: 0] atTime: kCMTimeZero ошибка: ноль]; } AVMutableVideoCompositionInstruction * MainInstruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction]; MainInstruction.timeRange = CMTimeRangeMake (kCMTimeZero, CMTimeAdd (firstAsset.duration, secondAsset.duration)); // КРЕПЛЕНИЕ ОРИЕНТАЦИЯ // AVMutableVideoCompositionLayerInstruction * FirstlayerInstruction = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack: firstTrack]; AVAssetTrack * FirstAssetTrack = [[firstAsset tracksWithMediaType: AVMediaTypeVideo] objectAtIndex: 0]; UIImageOrientation FirstAssetOrientation_ = UIImageOrientationUp; BOOL isFirstAssetPortrait_ = NO; CGAffineTransform firstTransform = FirstAssetTrack. preferredTransform; если (firstTransform.a == 0 && firstTransform.b == 1.0 && firstTransform.c == -1,0 && firstTransform.d == 0) {FirstAssetOrientation_ = UIImageOrientationRight; isFirstAssetPortrait_ = ДА;} если (firstTransform.a == 0 && firstTransform.b == -1,0 && firstTransform.c == 1.0 && firstTransform.d == 0) {FirstAssetOrientation_ = UIImageOrientationLeft; isFirstAssetPortrait_ = ДА;} если (firstTransform.a == 1,0 && firstTransform.b == 0 && firstTransform.c == 0 && firstTransform.d == 1.0) {FirstAssetOrientation_ = UIImageOrientationUp;} если (firstTransform.a == -1.0 && firstTransform.b == 0 && firstTransform.c == 0 && firstTransform.d == -1,0) {FirstAssetOrientation_ = UIImageOrientationDown; } CGFloat FirstAssetScaleToFitRatio = 320,0 / FirstAssetTrack.naturalSize.width; если (isFirstAssetPortrait _) {FirstAssetScaleToFitRatio = 320,0 / FirstAssetTrack.naturalSize.height; CGAffineTransform FirstAssetScaleFactor = CGAffineTransformMakeScale (FirstAssetScaleToFitRatio, FirstAssetScaleToFitRatio); [FirstlayerInstruction SetTransform: CGAffineTransformConcat (FirstAssetTrack.preferredTransform, FirstAssetScaleFactor) atTime: kCMTimeZero]; } Еще {CGAffineTransform FirstAssetScaleFactor = CGAffineTransformMakeScale (FirstAssetScaleToFitRatio, FirstAssetScaleToFitRatio); [FirstlayerInstruction SetTransform: CGAffineTransformConcat (CGAffineTransformConcat (FirstAssetTrack.preferredTransform, FirstAssetScaleFactor), CGAffineTransformMakeTranslation (0, 160)) atTime: kCMTimeZero]; } [FirstlayerInstruction setOpacity: 0,0 atTime: firstAsset.duration]; AVMutableVideoCompositionLayerInstruction * SecondlayerInstruction = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack: secondTrack]; AVAssetTrack * SecondAssetTrack = [[secondAsset tracksWithMediaType: AVMediaTypeVideo] objectAtIndex: 0]; UIImageOrientation SecondAssetOrientation_ = UIImageOrientationUp; BOOL isSecondAssetPortrait_ = NO; CGAffineTransform secondTransform = SecondAssetTrack.preferredTransform; если (secondTransform.a == 0 && secondTransform.b == 1.0 && secondTransform.c == -1,0 && secondTransform.d == 0) {SecondAssetOrientation_ = UIImageOrientationRight; isSecondAssetPortrait_ = ДА;} если (secondTransform.a == 0 && secondTransform.b == -1,0 && secondTransform.c == 1.0 && secondTransform.d == 0) {SecondAssetOrientation_ = UIImageOrientationLeft; isSecondAssetPortrait_ = ДА;} если (secondTransform.a == 1,0 && secondTransform.b == 0 && secondTransform.c == 0 && secondTransform.d == 1.0) {SecondAssetOrientation_ = UIImageOrientationUp;} если (secondTransform.a == -1.0 && secondTransform.b == 0 && secondTransform.c == 0 && secondTransform.d == -1,0) {SecondAssetOrientation_ = UIImageOrientationDown;} CGFloat SecondAssetScaleToFitRatio = 320,0 / SecondAssetTrack.naturalSize.width; если (isSecondAssetPortrait _) {SecondAssetScaleToFitRatio = 320,0 / SecondAssetTrack.naturalSize.height; CGAffineTransform SecondAssetScaleFactor = CGAffineTransformMakeScale (SecondAssetScaleToFitRatio, SecondAssetScaleToFitRatio); [SecondlayerInstruction SetTransform: CGAffineTransformConcat (SecondAssetTrack.preferredTransform, SecondAssetScaleFactor) atTime: firstAsset.duration]; } Еще {; CGAffineTransform SecondAssetScaleFactor = CGAffineTransformMakeScale (SecondAssetScaleToFitRatio, SecondAssetScaleToFitRatio); [SecondlayerInstruction SetTransform: CGAffineTransformConcat (CGAffineTransformConcat (SecondAssetTrack.preferredTransform, SecondAssetScaleFactor), CGAffineTransformMakeTranslation (0, 160)) atTime: firstAsset.duration]; } MainInstruction.layerInstructions = [NSArray arrayWithObjects: FirstlayerInstruction, SecondlayerInstruction, ноль] ;; AVMutableVideoComposition * MainCompositionInst = [AVMutableVideoComposition videoComposition]; MainCompositionInst.instructions = [NSArray arrayWithObject: MainInstruction]; MainCompositionInst.frameDuration = CMTimeMake (1, 30); MainCompositionInst.renderSize = CGSizeMake (320.0, 480.0); NSArray * дорожки = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, ДА); NSString * documentsDirectory = [путь objectAtIndex: 0]; NSString * myPathDocs = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @ "mergeVideo-% d.mov", arc4random ()% 1000]]; NSURL * URL = [NSURL fileURLWithPath: myPathDocs]; AVAssetExportSession * экспортера = [[AVAssetExportSession Alloc] initWithAsset: mixComposition presetName: AVAssetExportPresetHighestQuality]; exporter.outputURL = URL; exporter.outputFileType = AVFileTypeQuickTimeMovie; exporter.videoComposition = MainCompositionInst; exporter.shouldOptimizeForNetworkUse = ДА; [Экспортер exportAsynchronouslyWithCompletionHandler: ^ {dispatch_async (dispatch_get_main_queue (), ^ {[самостоятельная exportDidFinish: экспортер];}); }]; }}
Ravi
1

голосов
2

ответ
55

Просмотры

переменный-член класса какао выделяются внутри ноля вызова функции, если не принуждали Инициализировать / нагрузки

Я родом из C / C ++ фона и в настоящее время немного узнать о какао и Objective-C. У меня есть странное поведение с участием ленивой инициализации (если я не ошибаюсь), и чувствую, что я что-то очень простое пропавший без вести. Установка: Xcode 10,1 (10B61) Macos High Sierra 10.13.6 началось с проекта скретч какао использует Раскадровка добавить файлы TestMainView.m / .h под View Controller в main.storyboard, установить пользовательский класс NSView в TestMainView испытываются под отладки и выпуска строит в основном, я создаю NSTextView внутри контроллера представления, чтобы иметь возможность написать какой-нибудь текст. В TestMainView.m, я создаю цепочку объектов программно, как здесь проделать описанные Есть два пути: первый один включается установка USE_FUNCTION_CALL 0, это делает весь код запуска внутри awakeFromNib (). второй путь включается установкой USE_FUNCTION_CALL 1. Это делает текст контейнер и просматривать текст, который будут выделены из addNewPage вызова функции () и возвращает текстовый контейнер для дальнейшего использования. Первый путь кода работает так же, как и ожидалось: я могу написать какой-нибудь текст. Однако второй путь коды просто не работает, потому что по возвращению textContainer.textView равно нулю (само значение textContainer совершенно нормально). Что более тревожный, хотя (и это, где я подозреваю, что ленивая инициализацию быть виновник) является то, что если я «заставить» значение textContainer.textView в то время как внутри вызова функции, то все работает нормально. Вы можете попробовать это, установив FORCE_VALUE_LOAD 1. Это не должно быть, если (), она работает с NSLog (), а также. Он даже работает, если вы установите контрольную точку в обратной линии и использовать отладчик для печати значения ( «р textContainer.textView») Так что мои вопросы: это связано с отложенной инициализации? является то, что ошибка? есть обходной путь? я думаю о Cocoa / ObjC программирование неправильного пути? Я действительно надеюсь, что я что-то пропустил, потому что я не могу ожидать, чтобы случайно проверить переменные здесь и там внутри классов какао, в надежде, что они не превратить ноль. Он даже не удается молча (не сообщение об ошибке, ничего). TestMainView.m #import "TestMainView.h" #define USE_FUNCTION_CALL 1 #define FORCE_VALUE_LOAD 0 @implementation TestMainView NSTextStorage * m_mainStorage; - (недействительными) awakeFromNib {[супер awakeFromNib]; m_mainStorage = [NSTextStorage новый]; NSLayoutManager * LayoutManager = [[NSLayoutManager Alloc] инициализации]; #if USE_FUNCTION_CALL == 1 NSTextContainer * textContainer = [addNewPage себя: self.bounds]; #else NSTextContainer * textContainer = [[NSTextContainer Alloc] initWithSize: NSMakeSize (FLT_MAX, FLT_MAX)]; NSTextView * TextView = [[NSTextView Alloc] initWithFrame: self.bounds textContainer: textContainer]; #endif [LayoutManager addTextContainer: textContainer]; [M_mainStorage addLayoutManager: LayoutManager]; // textContainer.textView равна нулю, если не принуждал внутри вызова функции [само addSubview: textContainer.textView]; } #If USE_FUNCTION_CALL == 1 - (NSTextContainer *) addNewPage: (NSRect) {контейнеровозы NSTextContainer * textContainer = [[NSTextContainer Alloc] initWithSize: NSMakeSize (FLT_MAX, FLT_MAX)]; NSTextView * TextView = [[NSTextView Alloc] initWithFrame: контейнеровозы textContainer: textContainer]; [TextView setMaxSize: NSMakeSize (FLT_MAX, FLT_MAX)]; #if FORCE_VALUE_LOAD == 1 // Ленивые инициализации? textContainer.textView равна нулю, если мы не заставляем его, если (textContainer.textView) {} #endif возврата textContainer; } #Endif - (недействительными) DrawRect: (NSRect) dirtyRect {[супер DrawRect: dirtyRect]; // Рисование кода здесь. } @End TestMainView.h #import NS_ASSUME_NONNULL_BEGIN @interface TestMainView: NSView @end NS_ASSUME_NONNULL_END
JLL
1

голосов
3

ответ
1.1k

Просмотры

@ char as a key in NSDictionary

Я попытался с помощью @ символ в качестве ключа в NSDictionary и мое приложение просто выходит из строя. Я искал «недействительные» ключевые имена, не могу найти @ «@» в любом месте. Если я буду использовать что-то другое, чем @ «@» все это прекрасно работает. У меня есть список comanies, я получаю первую букву каждой компании, а затем я создаю NSMutableDictionary запись, содержащую первую букву в качестве ключа и в NSMutableArray в качестве значения. NSMutableDictionary indexDictionary = [[NSMutableDictionary Alloc] инициализации]; // здесь мы имеем петлю на COMPANYNAME {NSString * fristLetter = [[COMPANYNAME substringToIndex: 1] uppercaseString]; NSMutableArray * arrayOfIndexedCompanies = [indexDictionary valueForKey: firstLetter]; если (arrayOfIndexedCompanies) {[arrayOfIndexedCompanies AddObject: COMPANYNAME]} еще {NSMutableArray * newArray = [NSMutableArray массива]; [IndexDictionary SetObject: newArray forKey: firstLetter]; [NewArray AddObject: COMPANYNAME]; }} Я активировал точку останова на разрыв броска и останавливается на [indexDictionary valueForKey: firstLetter] ... только тогда, когда firstLetter это @ «@». Я имел бы говоря: если ([firstLetter isEqualToString: @ "@"]) {firstLetter = @ "A"; } И это хорошо работает, он помещает @ стартовые компании в разделе А правильно. Если я позволить firstLetter неизменным (оставляя его как @ «@») приложение будет врезаться. Кроме того, это не мой код, я просто пытаюсь исправить это, я не совсем знаком с ObjC и Фондом поэтому, пожалуйста, быть нежными. [NewArray AddObject: COMPANYNAME]; }} Я активировал точку останова на разрыв броска и останавливается на [indexDictionary valueForKey: firstLetter] ... только тогда, когда firstLetter это @ «@». Я имел бы говоря: если ([firstLetter isEqualToString: @ "@"]) {firstLetter = @ "A"; } И это хорошо работает, он помещает @ стартовые компании в разделе А правильно. Если я позволить firstLetter неизменным (оставляя его как @ «@») приложение будет врезаться. Кроме того, это не мой код, я просто пытаюсь исправить это, я не совсем знаком с ObjC и Фондом поэтому, пожалуйста, быть нежными. [NewArray AddObject: COMPANYNAME]; }} Я активировал точку останова на разрыв броска и останавливается на [indexDictionary valueForKey: firstLetter] ... только тогда, когда firstLetter это @ «@». Я имел бы говоря: если ([firstLetter isEqualToString: @ "@"]) {firstLetter = @ "A"; } И это хорошо работает, он помещает @ стартовые компании в разделе А правильно. Если я позволить firstLetter неизменным (оставляя его как @ «@») приложение будет врезаться. Кроме того, это не мой код, я просто пытаюсь исправить это, я не совсем знаком с ObjC и Фондом поэтому, пожалуйста, быть нежными. @ "@"]) {FirstLetter = @ "А"; } И это хорошо работает, он помещает @ стартовые компании в разделе А правильно. Если я позволить firstLetter неизменным (оставляя его как @ «@») приложение будет врезаться. Кроме того, это не мой код, я просто пытаюсь исправить это, я не совсем знаком с ObjC и Фондом поэтому, пожалуйста, быть нежными. @ "@"]) {FirstLetter = @ "А"; } И это хорошо работает, он помещает @ стартовые компании в разделе А правильно. Если я позволить firstLetter неизменным (оставляя его как @ «@») приложение будет врезаться. Кроме того, это не мой код, я просто пытаюсь исправить это, я не совсем знаком с ObjC и Фондом поэтому, пожалуйста, быть нежными.
andrei
1

голосов
3

ответ
1.7k

Просмотры

UIScrollView Уведомление?

Есть ли уведомление посыл когда UIScrollView изменяет это состояние прокрутки? Я хотел бы послушать тех, кто уведомление, а не использовать методы делегата? Любая помощь очень ценится ....
Ab'initio
1

голосов
0

ответ
347

Просмотры

Swift класс в ObjC проекте: Получатель «MySwiftClass» для класса сообщения является опережающим объявлением

Проведя несколько часов, чтобы интегрировать оперативные файлы успешно на мой основе Objective-C проект IOS, я сталкиваюсь следующий вызовом Сейчас: В одном из моего заголовка класса Objective-C (Say, MyObjCClass.h), я делаю опережающее объявление для MySwiftClass , В соответствующем файле .m я определяю экземпляр MySwiftClass _swiftClassInstance. В методе инициализации из MyObjCClass, я пытаюсь создать экземпляр его следующим образом: _swiftClassInstance = [[MySwiftClass Alloc] инициализации]; Когда я компилирую код, я получаю 2 ошибки: Получатель «MySwiftClass» для класса сообщения является опережающим объявлением приемника типа «MySwiftClass», например, сообщения является опережающим объявлением я уже сделал следующее: импортированная MyProject-Swift.h в MyObjCClass. м-файл. Маркировал быстрый класс с @objc и открытой Итак, что может быть причиной проблемы?
Harish J
1

голосов
0

ответ
116

Просмотры

Могу ли я позвонить CBPeripheral WriteValue: forCharacteristic: Тип: CBCharacteristicWriteWithoutResponse несколько раз?

Мне нужно написать разные значения для одной характеристики очень быстро. Я использую [cbPeripheral WriteValue: MyData forCharacteristic: myCharacteristic Тип: CBCharacteristicWriteWithoutResponse] Поскольку я использую WithoutResponse, я не могу использовать функцию обратного вызова, чтобы знать, когда это безопасно выстрелить другую запись. Я в порядке, если некоторые записи не делают его периферийное, но я не хочу к повреждению данных. Буду ли структура гарантия Ядра Bluetooth нет порчи данных, возможно, в виде записи в буфер, пока она в использовании? Спасибо!
Toasty
1

голосов
0

ответ
30

Просмотры

Core Data: split into sections based on custom logic

У меня есть большие наборы данных объектов, состоящие из 2-х больших иш подмножеств. Установка 1 имеет около 10 000 объектов в нем. Набор 2 имеет около 70 000 объектов в нем. Наборы объектов имеют много-ко-многим между ними. Есть также «избранные» подмножества для обоих наборов. Перед тем, как отображать набор 1 или набор 2, у меня будет подмножество из другого набора водить мой запрос / выборки. Скажем: Я отобрал 10 объектов из набора 1. Я хотел бы, чтобы отобразить набор 2. Я хотел бы установить 2, которые будут сгруппированы в 3-х секций: Секция 1 будет объекты в наборе 2, которые имеют отношения с 10 выбранных объектов из установить 1. раздел 2 будет объекты в «Избранное» подмножества, которые не в # 1. Раздел 3 будет все остальное. Таким образом, концептуально, у меня есть следующие шаги (опять же, учитывая 10 выбранных объектов из набора 1 и «избранных» подмножество из 2 набора): Рисунок из которых объекты в наборе 2 соответствуют выбранным объектам из набора 1. Установка # 1 в сторону и удалить их из общего набора (но только для этого дисплея). Рисунок из которых объекты оставлены в наборе 2, которые также в «избранных» подмножества. Set # 2 в сторону и удалить их из общего набора (опять же, только для этого дисплея). Рисунок из которых остались объекты. В конце этого, я хотел бы, чтобы отобразить 3 секции в UITableView. Я видел этот вопрос, но я не был уверен, были ли поставленные ответы: Еще действительны (это было почти 7 лет, так как был задан вопрос) Действительно для моего случая использования. (Будет ли расчетный метод возвращает номер раздела? Если да, то я должен пройти в обоих подмножествах, на которых я делаю свою фильтрацию? Как это будет выступать с такими большими наборами данных?) бы я должен пройти в обоих подмножествах, на которых я делаю свою фильтрацию? Как это будет выполнять с такими большими наборами данных?)
mbm29414
1

голосов
1

ответ
55

Просмотры

ITLibrary gives me nothing but (null)

Моя программа автоматизирует радиостанцию. Существует много общения назад и вперед между ним и Itunes. Я запрограммировал его сценарии моста. Сценарии мост страдает от утечек памяти. Каждый вызов сценариев моста просачивается небольшое количество памяти. Добавить много звонков на программу, которая работает в режиме 24/7 и у меня есть программное обеспечение, которое будет работать на что-то менее чем за 24 часов, а затем бросить курить. Моя первая попытка решения была минимизировать мои звонки на скриптовый мост. При исследовании этой цели, я наткнулся на ItunesLibrary. Это не работает для меня. NSError * ошибка = ноль; ITLibrary * библиотека = [ITLibrary libraryWithAPIVersion: @ "1.0" ошибка: & ошибка]; если (библиотека) {NSArray * плейлистов = [[NSArray Alloc] инициализации]; плейлисты = library.allPlaylists; NSArray * дорожки = [[NSArray Alloc] инициализации]; NSPredicate * предикат = [NSPredicate predicateWithFormat: @ "mediaKind ==% d", ITLibMediaItemMediaKindSong]; дорожки = [library.allMediaItems filteredArrayUsingPredicate: предикат]; NSLog (@ "Плейлисты -% @", плейлисты); NSLog (@ "Tracks -% @", треки); } Этот код довольно много прямо из документации Apple. Он должен работать - я думаю. Прежде чем я добавил предикат, я получил некоторую информацию о каждом из подкастов в моей библиотеке ITunes. В NSLog вывода, каждый из моих списков воспроизведения производит запись, подобную «». Каждый из моих песен ничего не показывает больше, чем (нуль). Вся информация находится в Itunes. Я могу читать его с скриптовым мостом. Я могу читать его с AVAsset AVAsset * активов = [AVURLAsset URLAssetWithURL: варианты myUrl: ноль]; NSArray * метаданные = [актив commonMetadata]; для (AVMetadataItem * элемент в метаданных) {NSString * ключ = [пункт commonKey]; NSString * значение = [пункт stringValue]; NSLog (@ "ключ =% @, значение =% @", ключ, значение); } С AVAsset я только получаю название песни, название альбома и имя исполнителя. Мне нужно, чтобы получить доступ к остальной части ID3 тегов iTune в. Что я не сломать ItunesLibrary?
Irv Heller
1

голосов
0

ответ
77

Просмотры

INSendMessageIntentHandling sirkit skipping handleSendMessage intent

I added NSLog(..) statements on each method but it was not going to the handle send message delegate. I need to get some message from Siri to do some tasks. Also, is there any way to get the date/time from speech with INSentMessageDomiain import "IntentHandler.h" // As an example, this class is set up to handle Message intents. // You will want to replace this or add other intents as appropriate. // The intents you wish to handle must be declared in the extension's Info.plist. // You can test your example integration by saying things to Siri like: // "Send a message using " // " John saying hello" // "Search for messages in " @interface IntentHandler () { NSString *resName; } @end @implementation IntentHandler - (id)handlerForIntent:(INIntent *)intent { // This is the default implementation. If you want different objects to handle different intents, // you can override this and return the handler you want for that particular intent. if ([intent isKindOfClass:[INSendMessageIntent class]]) { } return self; } #pragma mark - INSendMessageIntentHandling // Implement resolution methods to provide additional information about your intent (optional). - (void)resolveRecipientsForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(NSArray *resolutionResults))completion { // If no recipients were provided we'll need to prompt for a value. NSMutableArray *resolutionResults = [NSMutableArray array]; //NSArray *recipients = intent.recipients; [resolutionResults addObject:[INPersonResolutionResult notRequired]]; completion(resolutionResults); } - (void)resolveContentForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion { NSString *text = intent.content; if (text.length == 0) { completion([INStringResolutionResult needsValue]); } else { completion([INStringResolutionResult successWithResolvedString:text]); } } // Handle the completed intent (required). - (void)handleSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion { //Implement your application logic to send a message here. NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INSendMessageIntent class])]; INSendMessageIntentResponse *response = [[INSendMessageIntentResponse alloc]initWithCode:INSendMessageIntentResponseCodeSuccess userActivity:userActivity]; completion(response); }
Arunava Sanyal
1

голосов
1

ответ
281

Просмотры

Используйте общий расширенный быстрый класс в Objective-C

В моем проекте я много быстрых классов, расширяющих общие классы. И сейчас я нахожусь в необходимости отправки данных из Objective-C класса этих быстрых классов. Есть ли возможный способ сделать это? Я попытался с помощью @objc перед классом, как показано ниже, но она не позволила мне сделать это. Я после этого стека ссылки ответа. Но я проверил, когда я бег моего приложения с этим кодом впадины создать переменную в Project-быстром классе, как показано на рисунке ниже, как переменный не создаются здесь, так что это дает ошибку при вызове переменных в Objective-C классе. Просьба помочь с лучшим решением.
Parv Bhasker
1

голосов
0

ответ
50

Просмотры

асинхронный ждут в Objective-C Firebase API

Как изменить следующие Obj-C Firebase API стандартный код: недействительным (^ блок) (FIRDataSnapshot *); Блок = ^ аннулируется (FIRDataSnapshot * снимок) {FIRDatabaseQuery * запрос; [ObserveSingleEventOfType запроса: FIRDataEventTypeValue withBlock: ^ (FIRDataSnapshot * _Nonnull снимок) {}]; }; FIRDatabaseQuery * запрос; [ObserveSingleEventOfType запроса: FIRDataEventTypeValue withBlock: блок]; и использовать лучший вариант похож на Обещай использовать в Firebase функций node.js: Const promise1 = query.once ( «значение»); Const promise2 = query.once ( 'значение'); ждут Promise.all ([promise1, promise2]); любой хороший способ сделать наблюдение синхронных вызовов (ожидание возврата) может позволить использовать родную NSOperation Очередь NSOperation * promise1; NSOperation * promise2; NSOperation * promise_all; [Promise2 addDependency: promise1]; [Promise_all addDependency: promise2]; NSOperationQueue * Q; [Q addOperation: promise_all];
1

голосов
1

ответ
31

Просмотры

Objective-C: Pass a map snapshot to view controller in prepareForSegue

Я пытаюсь непосредственно перейти от MAPview на страницу, которая содержит снимок выбранного местоположения на этой MAPview. Вот мой метод prepareForSegue: - (Недействительными) prepareForSegue: (UIStoryboardSegue *) переход отправителя (идентификатор) отправитель {если ([segue.identifier isEqualToString: @ "LocationConfirmSegue"]) {LocationConfirmationViewController * В.- = segue.destinationViewController; MKCoordinateSpan диапазона; span.longitudeDelta = mapFocusSpan; span.latitudeDelta = mapFocusSpan; MKCoordinateRegion область; region.center = * currentPinLocation; region.span = пролет; MKMapSnapshotOptions * опции = [[MKMapSnapshotOptions Alloc] инициализации]; options.region = область; options.size = CGSizeMake (270, 180); MKMapSnapshotter * Snapshotter = [[MKMapSnapshotter Alloc] initWithOptions: варианты]; [Snapshotter startWithCompletionHandler: ^ (MKMapSnapshot * _Nullable снимок, NSError * _Nullable ошибка) {если (ошибка) {NSLog (@ "% @", ошибка); вернуть; } Vc.mapSnapshot = snapshot.image; }]; }} Я могу передавать информацию назначения VC тонкой внешний обработчик завершения работы Snapshotter в. Код все работает отлично, тоже - snapshot.image действительно возвращает UIImage * - однако он не передается в контроллер вида назначения. При попытке доступа к свойству mapSnapshot в этой точке зрения контроллера, я получаю (нуль). } Vc.mapSnapshot = snapshot.image; }]; }} Я могу передавать информацию назначения VC тонкой внешний обработчик завершения работы Snapshotter в. Код все работает отлично, тоже - snapshot.image действительно возвращает UIImage * - однако он не передается в контроллер вида назначения. При попытке доступа к свойству mapSnapshot в этой точке зрения контроллера, я получаю (нуль). } Vc.mapSnapshot = snapshot.image; }]; }} Я могу передавать информацию назначения VC тонкой внешний обработчик завершения работы Snapshotter в. Код все работает отлично, тоже - snapshot.image действительно возвращает UIImage * - однако он не передается в контроллер вида назначения. При попытке доступа к свойству mapSnapshot в этой точке зрения контроллера, я получаю (нуль).
Philip S
1

голосов
1

ответ
190

Просмотры

Отключить функцию «перетаскивания» для AVPlayer

Мое приложение воспроизводит видео для детей ясельного возраста. Он использует AVPlayer. В недавнем обновлении Apple, реализовала функцию перетаскивания просмотра видео, чтобы закрыть его. Это не очень хорошо работает с ясельного прикасаясь к экрану все время. Кто-нибудь знает, как отключить эту функцию? (Код находится в Objective-C)
Emily94
1

голосов
2

ответ
521

Просмотры

Изменение запросов от HTTPS к HTTP от WKWebview?

Мое требование заключается в перенаправлении запроса HTTPS к HTTP от WKWebView. Но запрос инициировал внутри WebView (Ajax вызова) не быть захваченным. После этого, запросы, сделанные с этой страницы не учитываются. Пожалуйста, поделитесь своими идеями. Очень признателен.
jailani
1

голосов
1

ответ
170

Просмотры

NSInternalInconsistencyException с унаследованным кодом ObjC в Xcode 9

Если вам действительно нужно больше ячеек из очереди, чем просмотр таблицы запроса, используйте dequeueReusableCellWithIdentifier: метод (без пути индекса). Идентификатор клетки: клетки, индекс пути: {длина = 2, путь = 0 - 0}»*** Первый стек бросить вызов: (0x181c3a364 0x180e80528 0x181c3a238 0x1825d57f4 0x18b51a44c 0x18b353570 0x100b53334 0x18b52bac4 0x18b52c028 0x18b50a8ac 0x18b2c133c 0x18b1edf00 0x185c7d998 0x185c81b20 0x185bee36c 0x185c15b90 0x185c169d0 0x181be1edc 0x181bdf894 0x181bdfe50 0x181affe58 0x1839acf84 0x18b25467c 0x100b7d2b8 0x18161c56c) Libc ++ abi.dylib: завершение с неперехваченным исключением типа NSException»резьба 1: сигнал SIGABRT: INT основных (INT ARGC, символ * ARGV []) {{@autoreleasepool вернуть UIApplicationMain (ARGC, ARGV, ноль , NSStringFromClass ([AppDelegate класс]));}} - (UITableViewCell *) Tableview: (UITableView *) Tableview cellForRowAtIndexPath: (NSIndexPath *) indexPath {если (indexPath.row == 0) {HeaderCell * ячейки = [Tableview dequeueReusableCellWithIdentifier: @ "headercell" forIndexPath: indexPath]; objectForKey: @ "profile_pic"], @ "cover_pic": [ответ objectForKey: @ "cover_pic"], @ "follow_count": [ответ objectForKey: @ "follow_count"], @ "FOLLOWING_COUNT": [ответ objectForKey: @ "FOLLOWING_COUNT "], @" user_name ": [ответ objectForKey: @" user_name "], @" имя ": [ответ objectForKey: @" имя "],}; NSMutableDictionary * Данные = ответа; UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer Alloc] initWithTarget: само действие: @selector (GalleryClicked)]; tapGesture.numberOfTapsRequired = 1; [Клетка. img_gallery setUserInteractionEnabled: ДА]; [Cell.img_gallery addGestureRecognizer: tapGesture]; UITapGestureRecognizer * viewProfilepic = [[UITapGestureRecognizer Alloc] initWithTarget: само действие: @selector (showProfilePic)]; viewProfilepic.numberOfTapsRequired = 1; [Cell.img_profilepic setUserInteractionEnabled: ДА]; [Cell.img_profilepic addGestureRecognizer: viewProfilepic]; UITapGestureRecognizer * viewcoverpic = [[UITapGestureRecognizer Alloc] initWithTarget: само действие: @selector (showCoverPic)]; viewcoverpic.numberOfTapsRequired = 1; [Cell.img_coverPic setUserInteractionEnabled: ДА]; [Cell.img_coverPic addGestureRecognizer: viewcoverpic]; [Cell.btn_message addTarget: само действие: @selector (myMessages) forControlEvents: UIControlEventTouchUpInside]; [Cell.btn_notification addTarget: само действие: @selector (уведомления) forControlEvents: UIControlEventTouchUpInside]; [Клеток setUpHeaderCellWithData: данные]; если ([objectForKey данные: @ "profile_pic"]) {если ([[objectForKey данные: @ "profile_pic"] containsString: @ "HTTP"]) profilPicUrl = [objectForKey данные: @ "profile_pic"]; еще profilPicUrl = @ "http://gleamedm.com/reb/img/fans/profile_pic/default.jpg"; } Если ([данные objectForKey: @ "cover_pic"]) {если ([[данные objectForKey: @ "cover_pic"] containsString: @ "HTTP")] coverPicUrl = [objectForKey данные: @ "cover_pic"]; еще coverPicUrl = [NSString stringWithFormat: @ "http://gleamedm.com/reb/img/fans/cover_pic/%@", [objectForKey данные: @ "cover_pic"]]; } Еще coverPicUrl = @ "http://gleamedm.com/reb/img/fans/cover_pic/default.jpg"; вернуться клетки; } Еще {INT индекс = (целое) indexPath.row-1; // bcoz 0 для заголовка indexPath = [NSIndexPath indexPathForRow: Индекс надрез: 0]; SinglePost * postObj = (SinglePost *) [сообщений objectAtIndex: индекс]; если (postObj.msg_postImgStr .length> 0) {MyProfileDataCell2 * ячейка = (MyProfileDataCell2 *) [Tableview dequeueReusableCellWithIdentifier: @ forIndexPath "dataCell2": indexPath]; [Клеток setupCellWithPostObject: postObj]; [Cell.textView setDelegate: само]; cell.textView.tag = индекс; UITapGestureRecognizer * tapGesture2 = [[UITapGestureRecognizer Alloc] initWithTarget: само действие: @selector (Postclicked :)]; [Cell.topView setUserInteractionEnabled: ДА]; [Клетка. Topview addGestureRecognizer: tapGesture2]; [Cell.topView SetTag: индекс]; [Cell.btn_comment addTarget: само действие: @selector (commentClicked :) forControlEvents: UIControlEventTouchUpInside]; [Cell.btn_likeUnlike addTarget: само действие: @selector (likeUnlikeClicked :) forControlEvents: UIControlEventTouchUpInside]; cell.btn_likeUnlike.tag = cell.btn_comment.tag = индекс; UITapGestureRecognizer * viewcoverpic = [[UITapGestureRecognizer Alloc] initWithTarget: само действие: @selector (PostPictureClicked :)]; viewcoverpic.numberOfTapsRequired = 1; [Cell.img_messagePic setUserInteractionEnabled: ДА]; [Cell.img_messagePic addGestureRecognizer: viewcoverpic]; [Cell.img_messagePic SetTag: индекс]; вернуться клетки; } Еще {DataCell1 * клетка = [Tableview dequeueReusableCellWithIdentifier: @ "клетка" forIndexPath: indexPath]; [Клеток setupCellWithPostObject: postObj]; [Cell.textView setDelegate: само]; cell.textView.tag = индекс; UITapGestureRecognizer * tapGesture2 = [[UITapGestureRecognizer Alloc] initWithTarget: само действие: @selector (Postclicked :)]; [Cell.topView setUserInteractionEnabled: ДА]; [Cell.topView addGestureRecognizer: tapGesture2]; [Cell.topView SetTag: индекс]; [Cell.btn_comment addTarget: само действие: @selector (commentClicked :) forControlEvents: UIControlEventTouchUpInside]; [Cell.btn_likeUnlike addTarget: само действие: @selector (likeUnlikeClicked :) forControlEvents: UIControlEventTouchUpInside]; cell.btn_likeUnlike.tag = cell.btn_comment.tag = индекс; вернуться клетки; }}}
IbizaBranding
1

голосов
2

ответ
58

Просмотры

Вызов релиз на объект, полученный из CFBridgingRelease

серийный (а NSString *) получается с помощью CFBridgingRelease Файл, который имеет этот код не использует ARC (-fno-ObjC-дуговая флаг компилятора) Будет ли ARC заботиться высвобождать эту память, в-несмотря на выше флага, или он должен быть освобожден вручную? В определенной ситуации с помощью выпуска, кажется, вызывают аварию (EXC_BAD_ACCESS) и стек трассировка показывает некоторый связанный autoreleasepool кода. NSString * серийный = ноль; io_service_t platformExpert = IOServiceGetMatchingService (kIOMasterPortDefault, IOServiceMatching ( "IOPlatformExpertDevice")); если (platformExpert) {CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty (platformExpert, РСНП (kIOPlatformSerialNumberKey), kCFAllocatorDefault, 0); если (serialNumberAsCFString) {серийный = CFBridgingRelease (serialNumberAsCFString); } IOObjectRelease (platformExpert); } [Серийный выпуск];
mahendra230668
1

голосов
0

ответ
54

Просмотры

How to Crop Image from square border

I'm trying to cut out the selected image from my image picker (it's my personal library) .. I managed to cut out the left side and the right side correctly but I'm having problems with the top and bottom side .. In a nutshell I can not properly cut the top and bottom of the photo ... My scrollView has inside a transparent square like the image clipper that provides apple with UIImagePicker. My image must be cropped keeping the edges of the square This is the code I am using and as you can see I have problems with the X source and the height of the image ... can you help me to understand where I am wrong? #pragma mark - Cropper Area -(void)setupCropperArea { _cropper.backgroundColor = [UIColor clearColor]; // Scroll View _scrollView = [[UIScrollView alloc] init]; _scrollView.backgroundColor = [UIColor clearColor]; _scrollView.showsVerticalScrollIndicator = NO; _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.translatesAutoresizingMaskIntoConstraints = NO; _scrollView.delegate = self; [self.cropper addSubview:_scrollView]; [_scrollView.topAnchor constraintEqualToAnchor:self.cropper.topAnchor].active = YES; [_scrollView.leftAnchor constraintEqualToAnchor:self.cropper.leftAnchor].active = YES; [_scrollView.rightAnchor constraintEqualToAnchor:self.cropper.rightAnchor].active = YES; [_scrollView.bottomAnchor constraintEqualToAnchor:self.cropper.bottomAnchor].active = YES; // Image View _imageView = [[UIImageView alloc] init]; _imageView.backgroundColor = [UIColor clearColor]; _imageView.translatesAutoresizingMaskIntoConstraints = NO; _imageView.contentMode = UIViewContentModeScaleAspectFit; [self.scrollView addSubview:_imageView]; _imageViewTopConstraint = [_imageView.topAnchor constraintEqualToAnchor:self.scrollView.topAnchor]; _imageViewLeadingConstraint = [_imageView.leftAnchor constraintEqualToAnchor:self.scrollView.leftAnchor]; _imageViewTrailingConstraint = [_imageView.trailingAnchor constraintEqualToAnchor:self.scrollView.trailingAnchor]; _imageViewBottomConstraint = [_imageView.bottomAnchor constraintEqualToAnchor:self.scrollView.bottomAnchor]; _imageViewTopConstraint.active = YES; _imageViewLeadingConstraint.active = YES; _imageViewBottomConstraint.active = YES; _imageViewTrailingConstraint.active = YES; // Square UIBezierPath *overlayPath = [UIBezierPath bezierPathWithRect:UIScreen.mainScreen.bounds]; UIBezierPath *transparentPath = [UIBezierPath bezierPathWithRoundedRect:self.squareFrame cornerRadius:2]; [overlayPath appendPath:transparentPath]; CAShapeLayer *border = [CAShapeLayer layer]; border.path = transparentPath.CGPath; border.fillRule = kCAFillRuleEvenOdd; border.fillColor = [UIColor clearColor].CGColor; border.strokeColor = [UIColor lightGrayColor].CGColor; border.lineWidth = 1; [self.cropper.layer addSublayer:border]; CAShapeLayer *fillLayer = [CAShapeLayer layer]; fillLayer.path = overlayPath.CGPath; fillLayer.fillRule = kCAFillRuleEvenOdd; fillLayer.fillColor = [UIColor colorWithHexString:@"#0F0F10" setAlpha:.3].CGColor; [self.cropper.layer addSublayer:fillLayer]; } -(void)scrollViewDidZoom:(UIScrollView *)scrollView { [self centerContent]; } -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return self.imageView; } -(CGFloat)squareX { return 10; } -(CGRect)squareFrame { CGRect screen = UIScreen.mainScreen.bounds; CGFloat squareSize = screen.size.width - (self.squareX * 2); CGFloat squareCenter = (screen.size.height /2 - (squareSize /2)); return CGRectMake(self.squareX, squareCenter, squareSize, squareSize); } -(CGFloat)landscapeMode { CGSize imageViewSize = self.imageView.frame.size; return imageViewSize.height < imageViewSize.width; } -(void)usesForCropping:(UIImage *)image { _imageView.image = image; CGFloat scaleHeight = self.scrollView.frame.size.height / image.size.height; CGFloat scaleWidth = self.squareFrame.size.width / image.size.width; CGFloat scale = MIN(scaleWidth, scaleHeight); _scrollView.minimumZoomScale = scale; _scrollView.maximumZoomScale = 3; _scrollView.zoomScale = scale; [self centerContent]; } -(void)centerContent { [self.view layoutIfNeeded]; _scrollView.contentInset = UIEdgeInsetsZero; UIEdgeInsets scrollInset = self.scrollView.contentInset; CGFloat topInset = self.squareFrame.origin.y - self.imageView.frame.origin.y; CGFloat bottomInset = self.squareFrame.origin.y + self.imageView.frame.origin.y; CGFloat leftInset = self.squareX - self.imageView.frame.origin.x; CGFloat rightInset = self.squareX + self.imageView.frame.origin.x; CGSize scrollSize = self.scrollView.bounds.size; CGFloat imageWidth = self.imageView.frame.size.width; CGFloat imageHeight = self.imageView.frame.size.height; CGFloat centerHeight = (scrollSize.height - imageHeight) / 2; CGFloat centerWidth = (scrollSize.width - imageWidth) /2; /* - - - - - Immagine scattata in LANDSCAPE - - - - - */ if (self.landscapeMode){ // Altezza Immagine SUPERIORE all'altezza del quadrato Guida if (imageHeight > self.squareFrame.size.height) { scrollInset.top = topInset; scrollInset.bottom = bottomInset; } // Default else { _imageViewTopConstraint.constant = centerHeight; _imageViewBottomConstraint.constant = centerHeight; scrollInset.top = 0; scrollInset.bottom = 0; } // Larghezza Immagine SUPERIORE alla larghezza del quadrato Guida if (imageWidth > self.squareFrame.size.width) { scrollInset.left = leftInset; scrollInset.right = rightInset; } // Default else { _imageViewLeadingConstraint.constant = centerWidth; _imageViewTrailingConstraint.constant = centerWidth; scrollInset.left = 0; scrollInset.right = 0; } NSLog(@"LANDSCAPE"); } /* - - - - - Immagine scattata in PORTRAIT - - - - - */ else { // Larghezza Immagine SUPERIORE alla larghezza del quadrato Guida if (imageWidth > self.squareFrame.size.width) scrollInset = UIEdgeInsetsMake(topInset, leftInset, bottomInset, rightInset); // Larghezza Immagine INFERIORE alla larghezza del quadrato Guida else if (imageWidth < self.squareFrame.size.width) scrollInset = UIEdgeInsetsZero; // Default else { scrollInset = UIEdgeInsetsMake(topInset, leftInset, bottomInset, rightInset); _imageViewTopConstraint.constant = centerHeight; _imageViewBottomConstraint.constant = centerHeight; _imageViewLeadingConstraint.constant = centerWidth; _imageViewTrailingConstraint.constant = centerWidth; } NSLog(@"PORTAIT"); } _scrollView.contentInset = scrollInset; NSLog(@"%f", _scrollView.frame.size.height); } This is the code for cropping - (IBAction)selectAndCropImage:(id)sender { CGFloat scale = 1 / self.scrollView.zoomScale; CGFloat x = self.scrollView.contentOffset.x * scale; CGFloat width = (self.scrollView.frame.size.width - (self.squareX *2)) * scale; CGFloat y = ?; CGFloat height = ?; CGImageRef imageRef = CGImageCreateWithImageInRect([self.imageView.image CGImage], CGRectMake(x, y, width, height)); UIImage *resultImage = [UIImage imageWithCGImage:imageRef]; [self.delegate didFinishPickImage:resultImage]; }
kAiN
1

голосов
0

ответ
661

Просмотры

IOS 11 MPNowPlayingInfoCenter не показаны детали

Я играю некоторые звуковые файлы с AVPlayer и теперь я хочу, чтобы отобразить данные дорожки в Центре управления или на экране блокировки. Я поставил его так: NSDictionary * Информация о = @ {MPMediaItemPropertyArtist: @ "Test", MPMediaItemPropertyAlbumTitle: @ "Test", MPMediaItemPropertyTitle: @ "Test", MPNowPlayingInfoPropertyPlaybackRate: @ 1.0f}; [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo: информация]; а также добавили [[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; но результат такой же, как описано здесь Как установить аудио сигналы с изображением на центр управления в Objective-C для iOS11? все просто неактивно и нет данных показывают.
John Sax
1

голосов
1

ответ
96

Просмотры

предупреждение Clang для указателей в случае, если для, в то время, и т.д.

Можно ли получить предупреждение для этого кода, где указатель используется в если заявление? NSObject * SomeObject = ...; если (SomeObject) {// предупреждение здесь ...} Я хотел бы требовать этого вместо этого, для ясности и безопасности: NSObject * SomeObject = ...; если (SomeObject! = ноль) {// предупреждение здесь ...}
w8ite
1

голосов
0

ответ
199

Просмотры

Режим содержания UIImageView изменяет при прокрутке TableView

У меня есть вид таблицы (SlackTextViewController) с пользовательской UITableViewCell, который содержит UIImageView и UITextView. Я использую SDWebImage для кэширования и устанавливающих изображений. Это мой cellForRowAtIndexPath: - (UITableViewCell *) Tableview: (UITableView *) Tableview cellForRowAtIndexPath: (NSIndexPath *) indexPath {статический NSString * идентификатор = @ "CommentsCell"; CommentsCell * клеток = (CommentsCell *) [self.tableView dequeueReusableCellWithIdentifier: идентификатор]; если (клетка) {NSArray * СИБ = [[NSBundle mainBundle] loadNibNamed: идентификатор владельца: опции самостоятельно: ноль]; ячейки = [перо objectAtIndex: 0]; } CommentsModel = (CommentsModel *) commentsListArray [indexPath.row]; если (commentsModel.hasImage) {cell.imageHeight.constant = 150; cell.photoImageView.hidden = NO; NSString * ImageUrl = commentsModel.commentImage; [Cell.photoImageView setShowActivityIndicatorView: ДА]; [Cell.photoImageView setIndicatorStyle: UIActivityIndicatorViewStyleGray]; cell.photoImageView.contentMode = UIViewContentModeScaleAspectFill; [Cell.photoImageView sd_setImageWithURL: [NSURL URLWithString: ImageUrl]]; } Еще {cell.imageHeight.constant = 0; cell.photoImageView.hidden = ДА; cell.textview.text = commentsModel.comments; [Cell.textview sizeToFit]; } Cell.transform = self.tableView.transform; возврат клетки} Когда контроллер вида открывается в первый раз, режим содержания в ImageView является каким-то образом установить на ScaleAspectFit и когда я прокрутка вверх и вниз несколько раз, режим содержания правильно установлен в ScaleAspectFill. Исходное содержание режима состояние: После прокрутки вверх и вниз, некоторые из них: Еще одна странная вещь, что случается, когда я представляю UIAlertController, режим содержания ImageView вдруг оживляет в ScaleAspectFill, как вы можете увидеть в видео ниже: https://www.youtube .com / смотреть? v = OT3bUR4CR5c & функция = youtu.be я не изменил режим содержания в ScaleAspectFit в коде случайно. Я проверил иерархию просмотра, чтобы увидеть, что нет никаких изменений в ширину и высоту в ImageView, и я не изменяя его рамку в любом месте. Я попытался установить режим содержания в методе prepareForReuse пользовательской ячейки. Я попытался установить изображение в главном потоке. Ни одно из вышеперечисленного не решает проблему. Любая помощь будет оценена. Благодарю. Еще одна странная вещь, что случается, когда я представляю UIAlertController, режим содержание ImageView вдруг оживляет в ScaleAspectFill, как вы можете увидеть в видео ниже: https://www.youtube.com/watch?v=OT3bUR4CR5c&feature=youtu.be Я не изменил режим содержания в ScaleAspectFit в коде случайно. Я проверил иерархию просмотра, чтобы увидеть, что нет никаких изменений в ширину и высоту в ImageView, и я не изменяя его рамку в любом месте. Я попытался установить режим содержания в методе prepareForReuse пользовательской ячейки. Я попытался установить изображение в главном потоке. Ни одно из вышеперечисленного не решает проблему. Любая помощь будет оценена. Благодарю. Еще одна странная вещь, что случается, когда я представляю UIAlertController, режим содержание ImageView вдруг оживляет в ScaleAspectFill, как вы можете увидеть в видео ниже: https://www.youtube.com/watch?v=OT3bUR4CR5c&feature=youtu.be Я не изменил режим содержания в ScaleAspectFit в коде случайно. Я проверил иерархию просмотра, чтобы увидеть, что нет никаких изменений в ширину и высоту в ImageView, и я не изменяя его рамку в любом месте. Я попытался установить режим содержания в методе prepareForReuse пользовательской ячейки. Я попытался установить изображение в главном потоке. Ни одно из вышеперечисленного не решает проблему. Любая помощь будет оценена. Благодарю. //www.youtube.com/watch?v=OT3bUR4CR5c&feature=youtu.be я не изменил режим содержания в ScaleAspectFit в коде случайно. Я проверил иерархию просмотра, чтобы увидеть, что нет никаких изменений в ширину и высоту в ImageView, и я не изменяя его рамку в любом месте. Я попытался установить режим содержания в методе prepareForReuse пользовательской ячейки. Я попытался установить изображение в главном потоке. Ни одно из вышеперечисленного не решает проблему. Любая помощь будет оценена. Благодарю. //www.youtube.com/watch?v=OT3bUR4CR5c&feature=youtu.be я не изменил режим содержания в ScaleAspectFit в коде случайно. Я проверил иерархию просмотра, чтобы увидеть, что нет никаких изменений в ширину и высоту в ImageView, и я не изменяя его рамку в любом месте. Я попытался установить режим содержания в методе prepareForReuse пользовательской ячейки. Я попытался установить изображение в главном потоке. Ни одно из вышеперечисленного не решает проблему. Любая помощь будет оценена. Благодарю. Я попытался установить режим содержания в методе prepareForReuse пользовательской ячейки. Я попытался установить изображение в главном потоке. Ни одно из вышеперечисленного не решает проблему. Любая помощь будет оценена. Благодарю. Я попытался установить режим содержания в методе prepareForReuse пользовательской ячейки. Я попытался установить изображение в главном потоке. Ни одно из вышеперечисленного не решает проблему. Любая помощь будет оценена. Благодарю.
Badhan Ganesh
1

голосов
0

ответ
33

Просмотры

обычай leftbarbuttonItem не показал в ИОС 11

У меня была проблема с пользовательским LeftBarButtonItem, когда я нажал на первый раз он показал на заказ leftbarbutton, но во второй раз он скрыт !!!! эта проблема появляется только в ИУ 11, но в ios10 он работал отлично. Класс A: - (недействительными) setBackButton {если (_backTabBarItem == ноль) {UIButton * BackButton = [[UIButton Alloc] initWithFrame: CGRectMake (0, 0, 30, 30)]; [BackButton setImage: [UIImage imageNamed: @ "icon_back"] Форстат: UIControlStateNormal]; [BackButton setTitleColor: [UIColor белый] Форстат: UIControlStateNormal]; [BackButton addTarget: само действие: @selector (popViewController) forControlEvents: UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem Alloc] initWithCustomView: BackButton]; } [Самостоятельно. не navigationItem setLeftBarButtonItem: _backTabBarItem анимированные: NO]; } В классе B: Func showLisHikeViewController (ActionView: ActionView) {пусть listHikeController = EMListHikeViewController.sharedManager (), как! EMListHikeViewController пусть LeftButton = UIBarButtonItem (изображение: UIImage (назван: "ic_slide"), стиль: .plain, цель: самостоятельно, действие: #selector (EMSlideMenu.leftButtonAction)) // Используйте селектор listHikeController.backTabBarItem = LeftButton .... .} Любая помощь, пожалуйста,
Walid Sassi
1

голосов
0

ответ
161

Просмотры

Need create VPN connect L2TP on osx

Требуется создать VPN-подключение L2TP на OSX без Shared Secret NSString * Сервер = @ "ServerIP"; NSString * имя пользователя = @ "пользователь"; NSString * пароль = @ "пройти"; сопзЬ пустота * passwordData = [[пароль dataUsingEncoding: NSUTF8StringEncoding] байт]; [VpnManager loadFromPreferencesWithCompletionHandler: ^ (NSError * ошибка) {если (ошибка) {NSLog (@ "Загрузка конфигурации не удалось [% @]", error.localizedDescription); вернуть; } NEVPNProtocol * р = (NEVPNProtocol *) vpnManager.protocolConfiguration; если (р!) {р = [[NEVPNProtocol Alloc] инициализации]; } P.username = имя пользователя; p.serverAddress = сервер; p.passwordReference = (__bridge NSData * _Nullable) (passwordData); p.disconnectOnSleep = NO; vpnManager.protocolConfiguration = р; vpnManager.localizedDescription = @ "L2TPOverIPSec"; vpnManager.enabled = ДА; [VpnManager saveToPreferencesWithCompletionHandler: ^ (NSError * ошибка) {если (ошибка) {NSLog (@ "Сохранить конфигурации не удалось [% @]", error.localizedDescription); }}]; }]; NEVPNConnection * подключения = [соединение vpnManager]; NSError * Error1; если ([подключить startVPNTunnelAndReturnError: & Error1]) {NSLog (@ "подключить"); } Еще {NSLog (@ "не подключать"); } После построения я получаю это недостающее протокол ошибок или протокол имеет недопустимый тип, а другие 2 протоколы используют IKE туннель, что может у меня совет? другой вариант запуска терминала из кода и добавьте эту строку networksetup -connectpppoeservice VPNConnect, но я не знаю, если это возможно vpnManager.enabled = ДА; [VpnManager saveToPreferencesWithCompletionHandler: ^ (NSError * ошибка) {если (ошибка) {NSLog (@ "Сохранить конфигурации не удалось [% @]", error.localizedDescription); }}]; }]; NEVPNConnection * подключения = [соединение vpnManager]; NSError * Error1; если ([подключить startVPNTunnelAndReturnError: & Error1]) {NSLog (@ "подключить"); } Еще {NSLog (@ "не подключать"); } После построения я получаю это недостающее протокол ошибок или протокол имеет недопустимый тип, а другие 2 протоколы используют IKE туннель, что может у меня совет? другой вариант запуска терминала из кода и добавьте эту строку networksetup -connectpppoeservice VPNConnect, но я не знаю, если это возможно vpnManager.enabled = ДА; [VpnManager saveToPreferencesWithCompletionHandler: ^ (NSError * ошибка) {если (ошибка) {NSLog (@ "Сохранить конфигурации не удалось [% @]", error.localizedDescription); }}]; }]; NEVPNConnection * подключения = [соединение vpnManager]; NSError * Error1; если ([подключить startVPNTunnelAndReturnError: & Error1]) {NSLog (@ "подключить"); } Еще {NSLog (@ "не подключать"); } После построения я получаю это недостающее протокол ошибок или протокол имеет недопустимый тип, а другие 2 протоколы используют IKE туннель, что может у меня совет? другой вариант запуска терминала из кода и добавьте эту строку networksetup -connectpppoeservice VPNConnect, но я не знаю, если это возможно ^ (NSError * ошибка) {если (ошибка) {NSLog (@ "Сохранить конфигурации не удалось [% @]", error.localizedDescription); }}]; }]; NEVPNConnection * подключения = [соединение vpnManager]; NSError * Error1; если ([подключить startVPNTunnelAndReturnError: & Error1]) {NSLog (@ "подключить"); } Еще {NSLog (@ "не подключать"); } После построения я получаю это недостающее протокол ошибок или протокол имеет недопустимый тип, а другие 2 протоколы используют IKE туннель, что может у меня совет? другой вариант запуска терминала из кода и добавьте эту строку networksetup -connectpppoeservice VPNConnect, но я не знаю, если это возможно ^ (NSError * ошибка) {если (ошибка) {NSLog (@ "Сохранить конфигурации не удалось [% @]", error.localizedDescription); }}]; }]; NEVPNConnection * подключения = [соединение vpnManager]; NSError * Error1; если ([подключить startVPNTunnelAndReturnError: & Error1]) {NSLog (@ "подключить"); } Еще {NSLog (@ "не подключать"); } После построения я получаю это недостающее протокол ошибок или протокол имеет недопустимый тип, а другие 2 протоколы используют IKE туннель, что может у меня совет? другой вариант запуска терминала из кода и добавьте эту строку networksetup -connectpppoeservice VPNConnect, но я не знаю, если это возможно Error1]) {NSLog (@ "подключить"); } Еще {NSLog (@ "не подключать"); } После построения я получаю это недостающее протокол ошибок или протокол имеет недопустимый тип, а другие 2 протоколы используют IKE туннель, что может у меня совет? другой вариант запуска терминала из кода и добавьте эту строку networksetup -connectpppoeservice VPNConnect, но я не знаю, если это возможно Error1]) {NSLog (@ "подключить"); } Еще {NSLog (@ "не подключать"); } После построения я получаю это недостающее протокол ошибок или протокол имеет недопустимый тип, а другие 2 протоколы используют IKE туннель, что может у меня совет? другой вариант запуска терминала из кода и добавьте эту строку networksetup -connectpppoeservice VPNConnect, но я не знаю, если это возможно
Eugenie
1

голосов
0

ответ
101

Просмотры

Alternative to Firebase for Huge Data sets

Наше приложение нашло большой успех в последнее время. Часть приложения состоит из огромного списка продуктов. Продукты, которые мы храним в реальном времени базы данных Firebase в. Однако наши данные, установленные для списка мы заселить в настоящее время превысило 5000 + объекты. Что, конечно, поставил большую нагрузку на нашу базу данных в реальном времени, в результате чего наше время загрузки этих продуктов нажать 1 минуту + на начальной нагрузки и 18 секунд + после кэширования, используя постоянный кэш данных Firebase в. Я читал другие вопросы, связанные с огромными наборами данных и использованием Firebase и короткий ответ «не делай этого». Однако то, что не был адресован, и «рассол» мы в то, что «может» делать? Есть ли где-нибудь еще, где мы можем разместить наши данные, которые запрашивают наши данные экспоненциально быстрее? Из-за нашего потребительной случае, нумерация страниц не вариант. JSON около 12Мб. Любые советы или «Мы столкнулись с той же блокпосту, и это то, что мы сделали» было бы весьма признателен! Спасибо! Как запросить данные: [_reference observeSingleEventOfType: FIRDataEventTypeValue withBlock: ^ (FIRDataSnapshot * снимок) {self.dataArray = [NSMutableArray массив]; self.postCountNew = 0; для (снимок в snapshot.children) {[_dataArray AddObject: snapshot.value]; INT TimeInterval = [Теперь timeIntervalSinceDate: [_ dateFormatter dateFromString: snapshot.value [@ "Дата"]]]; если (TimeInterval <86400 && TimeInterval> = 0 && TimeInterval! = 0) {_postCountNew ++; }} [Self.tableView reloadData]; completionBlock (ДА); }]; Как запросить данные: [_reference observeSingleEventOfType: FIRDataEventTypeValue withBlock: ^ (FIRDataSnapshot * снимок) {self.dataArray = [NSMutableArray массив]; self.postCountNew = 0; для (снимок в snapshot.children) {[_dataArray AddObject: snapshot.value]; INT TimeInterval = [Теперь timeIntervalSinceDate: [_ dateFormatter dateFromString: snapshot.value [@ "Дата"]]]; если (TimeInterval <86400 && TimeInterval> = 0 && TimeInterval! = 0) {_postCountNew ++; }} [Self.tableView reloadData]; completionBlock (ДА); }]; Как запросить данные: [_reference observeSingleEventOfType: FIRDataEventTypeValue withBlock: ^ (FIRDataSnapshot * снимок) {self.dataArray = [NSMutableArray массив]; self.postCountNew = 0; для (снимок в snapshot.children) {[_dataArray AddObject: snapshot.value]; INT TimeInterval = [Теперь timeIntervalSinceDate: [_ dateFormatter dateFromString: snapshot.value [@ "Дата"]]]; если (TimeInterval <86400 && TimeInterval> = 0 && TimeInterval! = 0) {_postCountNew ++; }} [Self.tableView reloadData]; completionBlock (ДА); }]; дети) {[_dataArray AddObject: snapshot.value]; INT TimeInterval = [Теперь timeIntervalSinceDate: [_ dateFormatter dateFromString: snapshot.value [@ "Дата"]]]; если (TimeInterval <86400 && TimeInterval> = 0 && TimeInterval! = 0) {_postCountNew ++; }} [Self.tableView reloadData]; completionBlock (ДА); }]; дети) {[_dataArray AddObject: snapshot.value]; INT TimeInterval = [Теперь timeIntervalSinceDate: [_ dateFormatter dateFromString: snapshot.value [@ "Дата"]]]; если (TimeInterval <86400 && TimeInterval> = 0 && TimeInterval! = 0) {_postCountNew ++; }} [Self.tableView reloadData]; completionBlock (ДА); }];
Joshua Hart
1

голосов
0

ответ
90

Просмотры

Как реализовать и с использованием nextTokenPage с помощью Использование GTLRYoutube IOS Objective C

поэтому у меня есть вопрос, как использовать и реализовать nextPageToken Использование GTLRYoutube в IOS Objective C, который пример результата является здесь: (https://developers.google.com/youtube/v3/docs/playlistItems/list) и установите maxResults в «10» и «nextPageToken сгенерирует его». Кстати мой поток, чтобы получить: ChannelID и получать PlaylistID -> получить PlaylistItems и VideoID один за другим и код вроде этого: 1. - (Недействительными) fetchChannelResource {GTLRYouTubeQuery_ChannelsList * запроса = [GTLRYouTubeQuery_ChannelsList queryWithPart: @ "сниппетов, contentDetails"] ; query.mine = TRUE; [Self.service ExecuteQuery: запрос делегата: само didFinishSelector: @selector (displayResultWithTicket: finishedWithObject: ошибка :)]; } И выполнить запрос: - (Недействительными) displayResultWithTicket: (GTLRServiceTicket *) finishedWithObject билет: (GTLRYouTube_ChannelListResponse *) каналы ошибка: (NSError *) ошибки {если (ошибка == ноль) {NSMutableString * Выход = [[NSMutableString Alloc] инициализации]; если (channels.items.count> 0) {self.youtubeChannelDataArray = channels.items; [Выход appendString: @ "информации канала: \ п"]; для (GTLRYouTube_Channel * канала в каналах) {NSString * название = channel.snippet.title; NSString * описание = channel.snippet.description; NSNumber * = channel.statistics.viewCount количества просмотров; [Выход appendFormat: @ "Название:% @ \ nDescription:% @ \ nViewCount:% @ \ п", название, описание, количество просмотров]; NSString * uploadID = channel.contentDetails.relatedPlaylists.uploads; самостоятельно. youtubeUploadID = uploadID; } // вызов fetchPlaylistItemResource [собственной fetchPlaylistItemResource]; } Еще {[выход appendString: @ "канал не найден."]; } // self.output.text = выход; } Еще {// [само showAlert: @ "Ошибка" сообщение: error.localizedDescription]; }} все данные, сохраненные в NSArray и NSMutableDictionary. и в других ViewController, мне нужно, чтобы показать их всех .. но проблема в том, как реализовать с nextPageToken, который будет отображаться на 5 пунктов resultPerPage ?? потому что, когда я использую этот «GTLRYoutube», похоже, нам не нужно, чтобы сделать новую модель, просто использовать модель из GTLRYoutube, кроме того, что также не делает отображение и доступ к API YouTube в кого Datamanager.m есть предложение или посоветуете ??? благодаря прежде!
Axel
1

голосов
1

ответ
158

Просмотры

HashValue mis match in PayUMoney framework, iOS - Objective-C

Я получил ошибку как значение Hash Рассогласуйте от PayUMoney платежного шлюза Вот мой код, который я сделал, пожалуйста, дайте мне знать, где проблема PUMTxnParam * txnParam = [[PUMTxnParam Alloc] инициализации]; // Установить параметры txnParam.phone = [[NSUserDefaults standardUserDefaults] valueForKey: @ "мобильный"]; txnParam.email = [[NSUserDefaults standardUserDefaults] valueForKey: @ "имя пользователя"]; txnParam.amount = _txtCash.text; txnParam.environment = PUMEnvironmentProduction; txnParam.firstname = [[NSUserDefaults standardUserDefaults] valueForKey: @ "имя1"]; txnParam.key = @ "XXXXXXXX"; txnParam.merchantid = @ "XXXXXXX"; txnParam.txnID = [txnData valueForKey: @ "txnid"]; txnParam.surl = @ "https://google.com/"; txnParam.furl = @ "https://google.com/"; txnParam.productInfo = @ "My App"; txnParam. udf1 = @ ""; txnParam.udf2 = @ ""; txnParam.udf3 = @ ""; txnParam.udf4 = @ ""; txnParam.udf5 = @ ""; txnParam.hashValue = [самоуправления createSHA512: [NSString stringWithFormat: @ "% @ | @% |% @ | @% |% @ | @% |% @ | @% |% @ | @% |% @ |||| ||% @ |», txnParam.key, txnParam.txnID, txnParam.amount, txnParam.productInfo, txnParam.firstname, txnParam.email, txnParam.udf1, txnParam.udf2, txnParam.udf3, txnParam.udf4, txnParam.udf5 , @ "dxltF25QEp"]]; - (NSString *) createSHA512: (NSString *) строка {Const символ * CSTR = [строка cStringUsingEncoding: NSUTF8StringEncoding]; NSData * данные = [NSData dataWithBytes: длина CSTR: String.length]; uint8_t переваривать [CC_SHA512_DIGEST_LENGTH]; CC_SHA512 (data.bytes, (CC_LONG) data.length, дайджест); NSMutableString * Выход = [NSMutableString stringWithCapacity: CC_SHA512_DIGEST_LENGTH * 2]; для (INT I = 0; г <CC_SHA512_DIGEST_LENGTH; я ++) [выход appendFormat: @ "% 02X", дайджест [I]]; вернуть выход; } Пожалуйста, помогите, чтобы очистить это.
Prashant
1

голосов
0

ответ
52

Просмотры

Как выяснить, что звонит UIGestureRecognizerStateCancelled?

У меня есть UIGestureRecognizer где .began состояние в настоящее время срабатывает, но затем сразу переходит к .cancelled состояния. Как я понимаю, .cancelled вызывается, когда система широко происходит событие или его касание перехвачен другим жестом. В моем случае, я думаю, что это перехватывается, но я не могу понять, что улавливает его. У меня нет других scrollviews или gestureRecognizers на мой взгляд контроллера. Есть в любом случае выяснения, почему .cancelled вызывается? Edit- Вот трассировки стека:
Chris Jones
1

голосов
2

ответ
371

Просмотры

IOS: как изменить цвет / шрифт некоторых символов строки

в моем приложении я должен изменить шрифт части строки, которая приходит от ответа JSON> «Эндрю Джеймс понравился ваш комментарий> \» hiiiiiiiiiiiiiii \ «что вы вывесили.» чтобы преобразовать его в приписываемой строке я использую следующий код NSAttributedString * атр = [[NSAttributedString Alloc] initWithData: [NotificationTxt dataUsingEncoding: NSUTF8StringEncoding] Параметры: @ {NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: @ (NSUTF8StringEncoding)} documentAttributes: ошибка ноль: ноль ]; Я хочу, чтобы изменить цвет шрифта отправителя
Abhinandan Pratap
1

голосов
0

ответ
120

Просмотры

Objective C - How to communicate with OS X's Bluetooth USB Host Controller

Я в настоящее время программирования рамки Bluetooth связи в Objective C и это проекты специальные способности в том, что он непосредственно взаимодействует с контроллером Apple, Bluetooth. OS X Лечит модуль Bluetooth в качестве USB-устройства и до сих пор мне удалось получить к нему доступ через IOKit Framework, а также с помощью Судо kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport освободить собственности систем управления. Кроме того, я успел прочитать и отправить NSData к контроллеру через его интерфейсы и труб. Мой вопрос, есть ли документация где-то так я могу научиться общаться с контроллером (в шестнадцатеричном формате), как сканирование, пары, подключение и т.д ... (Любопытный Hopin для одного для чайников, я чувствую, что я очень опытный с программированием и вещи, но я довольно новыми для модули Bluetooth, пусть одинокий USBs) Я искал в интернете для возрастов, но им не совсем уверен, что искать. (Im помощью Apple, встроенный в Bluetooth USB Host Controller) Apple Bluetooth USB хост-контроллер Look Я знаю, что я могу просто использовать рамки IOBluetooth и CoreBluetooth для обработки блютус устройств, но я хочу, чтобы попытаться сделать это непосредственно через главный контроллер, чтобы получить доступ к функциям что OS X не включает (Надеясь, чтобы сделать что-то вроде BlueTooth каналу наркоманом или любой другой) (Программа работает) Просто упакуйте ваш интересно, я получил идею от VirtualBox, и как он утверждает, что контроллер Bluetooth и подключает его к виртуальной машине использовать по желанию. (Я знаю, что виртуальные машины знают, как использовать его, потому что у них есть BLUETOOTH система обработки, встроенные в операционные системы там) Заранее спасибо! : D ы встроенный Bluetooth USB Host Controller) Apple Bluetooth USB хост-контроллер Look Я знаю, что я могу просто использовать рамки IOBluetooth и CoreBluetooth для обработки блютус устройств, но я хочу, чтобы попытаться сделать это непосредственно через главный контроллер, чтобы получить доступ к функциям, OS X не включает в себя (Надеясь, чтобы сделать что-то вроде BlueTooth каналу наркоманом или любой другой) (Программа Running) Просто интересно ваше закончит, я получил идею от VirtualBox, и как он утверждает, что контроллер Bluetooth и подключает его к виртуальной машине использовать по желанию. (Я знаю, что виртуальные машины знают, как использовать его, потому что у них есть BLUETOOTH система обработки, встроенные в операционные системы там) Заранее спасибо! : D ы встроенный Bluetooth USB Host Controller) Apple Bluetooth USB хост-контроллер Look Я знаю, что я могу просто использовать рамки IOBluetooth и CoreBluetooth для обработки блютус устройств, но я хочу, чтобы попытаться сделать это непосредственно через главный контроллер, чтобы получить доступ к функциям, OS X не включает в себя (Надеясь, чтобы сделать что-то вроде BlueTooth каналу наркоманом или любой другой) (Программа Running) Просто интересно ваше закончит, я получил идею от VirtualBox, и как он утверждает, что контроллер Bluetooth и подключает его к виртуальной машине использовать по желанию. (Я знаю, что виртуальные машины знают, как использовать его, потому что у них есть BLUETOOTH система обработки, встроенные в операционные системы там) Заранее спасибо! : D Я получил идею от VirtualBox, и как он утверждает, что контроллер Bluetooth и подключает его к виртуальной машине использовать по желанию. (Я знаю, что виртуальные машины знают, как использовать его, потому что у них есть BLUETOOTH система обработки, встроенные в операционные системы там) Заранее спасибо! : D Я получил идею от VirtualBox, и как он утверждает, что контроллер Bluetooth и подключает его к виртуальной машине использовать по желанию. (Я знаю, что виртуальные машины знают, как использовать его, потому что у них есть BLUETOOTH система обработки, встроенные в операционные системы там) Заранее спасибо! : D
MacMan
1

голосов
0

ответ
25

Просмотры

POST через OVCHTTPSessionManager

Как сделать запрос POST с телом через OVCHTTPSessionManager? Я не нашел, кроме [собственного rac_POST: @ параметров «имя»: параметры]; метод. Там в один [самоуправления rac_POST: @ параметров "имя": параметры constructingBodyWithBlock: ^ (идентификатор _Nonnull FormData) {NSData * dataOnObject = [NSKeyedArchiver archivedDataWithRootObject: заказ]; [FormData appendPartWithHeaders: ноль тела: dataOnObject]; }]; Но я не могу понять, как это работает
Denis Kosov
1

голосов
1

ответ
123

Просмотры

Набор идентификаторов для многократного использования tableViewCell динамически

TableViewCell содержит две метки и содержимое этикетки обновляются на каждой итерации. Для тестирования пользовательского интерфейса, мне нужно установить идентификатор этикетки, чтобы проверить содержание этикетки такие же, как и ожидалось, или нет. Как я могу установить идентификаторы меток внутри многоразовой ячейку динамически? @interface MyDetailsTableViewCell: UITableViewCell @property (слабый, неатомический) IBOutlet UIDLabel * myDetailsTitlelabel; @property (слабый, неатомический) IBOutlet UIDLabel * myDetailsContentLabel; @end Эти две метки внутри моей tableViewCell.
Sagarika Barman
1

голосов
2

ответ
284

Просмотры

UIPickerView selectedRowInComponent: 0 всегда возвращает ноль первый, когда я пытаюсь установить данные второго компонента

Я новичок в программировании IOS. В последнее время я пытаюсь сделать UIPickerView как inputView в UITextField. Данные в UIPickerView это обо всех IOS встроенных шрифтов. Так что я хочу сделать два компонента в UIPickerView: первый familyType, а второй все шрифты в этом familyType. Я имитировать код из этого ответа, но я встречаю некоторые проблемы, я не могу решить. Любая помощь приветствуется! Мой вопрос здесь: Почему rowOneSelected в этой функции всегда получаю 0 первых, я даже использовать selectedRowInComponent заранее? // Количество строк данных - pickerView (NSInteger): (UIPickerView *) pickerView numberOfRowsInComponent: (NSInteger) компонент {если (компонент == 0) {вернуть _fontTypeArray.count; } Еще {NSInteger rowOneSelected = [_pickerFont selectedRowInComponent: 0]; FontType * Температура = _fontTypeArray [rowOneSelected]; NSLog (@ "% л.д." (длинный) rowOneSelected); // Я использую это для отладки, и есть главный вопрос: почему каждый раз, когда он записывает 0 первыми? вернуться temp.font.count; }} Все мой родственник код здесь: В ViewController.h: #import #import "MenuLayerTwoPlusThree.h" @interface ViewController: UIViewController @property MenuLayerTwoPlusThree * layerTwoPlusThree; - (недействительная) createLayerTwoPlusThree; @end В ViewController.m: - (недействительными) viewDidLoad {[супер viewDidLoad]; [Само createLayerTwoPlusThree]; } - (недействительными) createLayerTwoPlusThree {_layerTwoPlusThree = [MenuLayerTwoPlusThree Alloc]; [_LayerTwoPlusThree createFontArray]; [_LayerTwoPlusThree createSelectPanel]; } В FontType.h: #ifndef FontType_h #define FontType_h #import @interface FontType: NSObject @property NSString * FamilyName; @property NSMutableArray * шрифт; @end #endif / * FontType_h * / В FontType.m: #import #import "FontType.h" @implementation FontType @synthesize FamilyName; @synthesize шрифта; @end В MenuLayerTwoPlusThree.h: #ifndef MenuLayerTwoPlusThree_h #define MenuLayerTwoPlusThree_h #import #import "FontType.h" @interface MenuLayerTwoPlusThree: NSObject @property UITextField * textFieldFont; @property NSMutableArray * fontTypeArray; @property UIPickerView * pickerFont; @property UIBarButtonItem * doneButton; @property UIBarButtonItem * spaceButton; @property UIBarButtonItem * CancelButton; @property UIToolbar * Toolbar; @property NSArray * toolBarItems; @property NSInteger familyType; @property NSInteger FontType; @property NSString * Fontname; - (недействительными) createFontArray; - (IBAction) pickerViewButtonClicked: (ID) отправителя; @end В MenuLayerTwoPlusThree.m - (недействительными) createFontArray {_fontTypeArray = [[NSMutableArray Alloc] initWithCapacity: 80]; INT число = 0; для (NSString * семья в [UIFont familyNames]) {// NSLog (@ "% @", семьи); // число ++; FontType * Темп = [[FontType Alloc] инициализации]; temp.familyName = семья; temp.font = [[NSMutableArray Alloc] инициализации]; INT флаг = 0; для (имя NSString * в [UIFont fontNamesForFamilyName: семьи]) {// NSLog (@ "% @", имя); // число ++; флаг ++; [Temp.font AddObject: имя]; } // добавить Heiti SC, TC, Heiti телугу Sangam MN, и бенгальский сангам MN, чтобы шрифт массив, если (флаг == 0) {[temp.font AddObject: семья]; } [_FontTypeArray AddObject: Темп]; } // печатаем все шрифты тест для (FontType * х в _fontTypeArray) {числа ++; NSLog (@ "% @", x.familyName); для (NSString * у в x.font) {// номер ++; NSLog (@ "\ т% @", у); }} NSLog (@ "//////////////////////////////"); NSLog (@ "% D", номер); } - (недействительными) createSelectPanel {[самостоятельной createSelectPanelForPancel1]; [Само createSelectPanelForPancel2]; [Само createSelectPanelForFont]; [Само createSelectPanelForShape]; [Само createSelectPanelForEraser]; } - (недействительными) createSelectPanelForFont {_textFieldFont = [[UITextField Alloc] initWithFrame: CGRectMake (19, 148, 150, 12)]; [_TextFieldFont setBackground: [UIImage imageNamed: @ "шрифт-типа bar.png"]]; _textFieldFont.rightViewMode = UITextFieldViewModeAlways; _textFieldFont.delegate = самостоятельно; [_TextFieldFont setPlaceholder: @ "Heiti ТК"]; _textFieldFont.font = [_textFieldFont.font fontWithSize: 10 * _aspectRatio]; // изменить размер изображения Вид справа UIImageView * rightViewImage = [[UIImageView Alloc] initWithFrame: CGRectMake (0, 0, 12 * _aspectRatio, 12 * _aspectRatio)]; [RightViewImage setImage: [UIImage imageNamed: @ "шрифт-типа штрих-roll.png"]]; _textFieldFont.rightView = rightViewImage; _pickerFont = [[UIPickerView Alloc] инициализации]; _pickerFont.dataSource = самостоятельно; _pickerFont.delegate = самостоятельно; _pickerFont.showsSelectionIndicator = ДА; _doneButton = [[UIBarButtonItem Alloc] initWithTitle: @ "Done" стиль: целевой UIBarButtonItemStyleDone: само действие: @selector (pickerViewButtonClicked :)]; _spaceButton = [[UIBarButtonItem Alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemFlexibleSpace цели: ноль действия: ноль]; _cancelButton = [[UIBarButtonItem Alloc] initWithTitle: @ "Отменить" стиль: цель UIBarButtonItemStylePlain: само действие: @selector (pickerViewButtonClicked :)]; _toolBar = [[UIToolbar Alloc] initWithFrame: CGRectMake (0, 0, [UIScreen В начало] .bounds.size.width, 45)]; [_ToolBar setBarStyle: UIBarStyleDefault]; _toolBarItems = [NSArray arrayWithObjects: _cancelButton, _spaceButton, _doneButton, ноль]; [_ToolBar setItems: _toolBarItems]; _textFieldFont.inputView = _pickerFont; _textFieldFont.inputAccessoryView = _toolBar; если (@available (IOS 9,0, *)) {_textFieldFont.inputAssistantItem.leadingBarButtonGroups = @ []; } Еще {// Запасной на более ранних версиях} если (@available (IOS 9,0, *)) {_textFieldFont.inputAssistantItem.trailingBarButtonGroups = @ []; } Еще {// Запасные на более ранних версии} // Я хочу, чтобы добавить эти коды, чтобы выбрать строку в расширенном, чтобы убедиться, что первый раз NSLog напечатает 9, но он не работает. // [_pickerFont reloadAllComponents]; // _familyType = 9; // _fontType = 0; // _fontName = @ "Heiti ТК"; // [_pickerFont selectRow: _familyType inComponent: 0 анимированный: ДА]; [_SelectPanelFontView addSubview: _textFieldFont]; } И это делегат, который я написал в MenuLayerTwoPlusThree.m: // Количество столбцов данных - (NSInteger) numberOfComponentsInPickerView: (UIPickerView *) pickerView {возвращение 2; } // Количество строк данных - (NSInteger) pickerView: (UIPickerView *) pickerView numberOfRowsInComponent: (NSInteger) компонент {если (компонент == 0) {вернуть _fontTypeArray.count; } Еще {NSInteger rowOneSelected = [_pickerFont selectedRowInComponent: 0]; FontType * Температура = _fontTypeArray [rowOneSelected]; NSLog (@ "% л.д." (длинный) rowOneSelected); // Я использую это для отладки, и есть главный вопрос: почему каждый раз, когда он записывает 0 первыми? вернуться temp.font.count; }} // Данные для возврата для строк и компоненты (колонки), который передается в - (NSString *) pickerView: (UIPickerView *) pickerView titleForRow: (NSInteger) строки forComponent: (NSInteger) компонент {если (компонент == 0) {FontType * Температура = _fontTypeArray [строка]; вернуться temp.familyName; } Еще {NSInteger rowOneSelected = [_pickerFont selectedRowInComponent: 0]; FontType * Температура = _fontTypeArray [rowOneSelected]; вернуться [temp.font objectAtIndex: строка]; }} - (недействительными) pickerView: (UIPickerView *) pickerView didSelectRow: (NSInteger) строки inComponent: (NSInteger) компонент {если (компонент == 0) {[_pickerFont reloadComponent: 1]; } // Этот блок перемещается в pickerViewButtonClicked (отправитель == _doneButton) // другое // {// NSInteger rowOneSelected = [_pickerFont selectedRowInComponent: 0]; // FontType * температура = _fontTypeArray [rowOneSelected]; // [_textFieldFont SetText: temp.font [строка]]; //}} - (IBAction) pickerViewButtonClicked: (Идентификатор) отправитель {если (отправитель == _doneButton) {// Сохраняет значение, когда я нажал на кнопку Готово. _familyType = [_pickerFont selectedRowInComponent: 0]; _fontType = [_pickerFont selectedRowInComponent: 1]; // NSLog (@ "семьи:% л.д.", _familyType); // NSLog (@ "шрифт:% л.д.", _fontType); FontType * Температура = _fontTypeArray [_familyType]; _fontName = temp.font [_fontType]; [_TextFieldFont SetText: _fontName]; // NSLog (@ "Имя шрифта:% @", _fontName); [_TextFieldFont endEditing: ДА]; } Иначе, если (отправитель == _cancelButton) {[_textFieldFont endEditing: ДА]; // Я хочу, чтобы вернуться к последнему выбранному значению, когда я нажал кнопку отмены. [_PickerFont reloadAllComponents]; [_PickerFont selectRow: _familyType inComponent: 0 не анимированные: NO]; [Не _pickerFont selectRow: _fontType inComponent: 1 анимационный: NO]; }}
Leo Liu
1

голосов
0

ответ
46

Просмотры

Как отобразить UIDatePicker Даты на хинди с английскими номерами / Digits

Я хочу, чтобы отобразить дату в дате сборщиков на языке хинди, но цифры на английском языке. Например, я был в состоянии получить снимок экрана, установив язык устройства на хинди и цифры на английский язык. Но я хочу, чтобы добиться его программно. Я пробовал: UIDatePicker * Datepicker; [Datepicker Setlocale: [[NSLocale Alloc] initWithLocaleIdentifier: @ «привет»]]; // или @ «hi_IN», но то, что я получаю это так, как я могу установить цифры, чтобы быть на английском языке?
R. K.
1

голосов
0

ответ
268

Просмотры

Проверьте состояние личной точки доступа ли или нет?

Как проверить личные точки доступа включен или нет. Мне нужно, чтобы получить эту информацию без тюрьмы взлома. Только статус ON или Off. Я даже проверить это решение - Обнаружение Hotspot состояние я не могу ничего понять.
Nupur Gupta
1

голосов
3

ответ
42

Просмотры

UITextField редактирования дисплея, когда активность остановлена

В моем экране входа в приложении я использую текстовые поля, чтобы получить учетные данные для входа и через API я получаю данные. При выполнении вызова API с индикатором активности я в конечном редактировании от контроллера представления как [self.view endEditing: ДА]; Я столкнулся проблемы с этим, перед API вызова endEditing работы. Когда ответ, полученный от API снова клавиатура моргнувший в течение 2 секунд в 10 прошивке я не сталкиваюсь с этим устройством с прошивкой 11 и выше, я перед этой заранее спасибо
AJ Sanjay
1

голосов
0

ответ
156

Просмотры

Как преобразовать массив аудио поплавка mp3 буфера с помощью хромого Lib IOS?

Я использую EZAudio Lib для получения звуковых данных во время воспроизведения. Теперь я хочу, чтобы передать эти данные в mp3 буфера. Я использую хромой LIB для кодирования данных и транслировать его. Но я не в состоянии преобразовать его правильно. получение аудио буфера поплавка снизу функции Lib EZAudio - (Недействительными) аудиоплеера: (EZAudioPlayer *) аудиоплеера playedAudio: (поплавок **) буфер withBufferSize: (UInt32) BufferSize withNumberOfChannels: (UInt32) numberOfChannels inAudioFile: (EZAudioFile *) аудиофайл После того, как буфер (! данных) - используйте ниже функции для преобразования, чтобы AudioBufferList (AudioBufferList *) writeList: (длинный) numFrames fromArray (короткий **) данные {если возвращение ноль; если (! numFrames) возвращение ноль; AudioBufferList * ABL = AllocateAudioBufferList (mStreamFormat.mChannelsPerFrame, numFrames * SizeOf (короткий)); если (ABL!) возвратного ноль; для (длинный с = 0; с < mStreamFormat.mChannelsPerFrame; C ++) {abl-> mBuffers [с] .mNumberChannels = 2; abl-> mBuffers [с] .mDataByteSize = numFrames * SizeOf (короткий); если (данные [с]) {короткий * Buffer = (короткий *) abl-> mBuffers [с] .mData; для (длинный v = 0; V <numFrames; v ++) {буфер [v] = данные [с] [v]; / * Если (данные [с] [v]> 0,999) данные [с] [v] = 0,999; иначе, если (данные [с] [v] <-1.) данные [с] [v] = -1 .; буфер [v] = (короткие) (данные [с] [v] * 32768.f); * /}} еще MemSet (abl-> mBuffers [с] .mData, 0, numFrames * SizeOf (короткий)); } Вернуть ABL; } Когда я получаю AudioBufferList и передать ниже функции для кодирования - (недействительными) newEncodingCodeWithFilePath: (AudioBufferList *) bufferListInOut {INT inNumPackets = 2048; INT MP3_SIZE = inNumPackets * 2; символ без знака mp3_buffer [MP3_SIZE]; MemSet (mp3_buffer, 0, SizeOf (mp3_buffer)); INT encodedBytes = lame_encode_buffer (неточным, bufferListInOut-> mBuffers [0] .mData, bufferListInOut-> mBuffers [1] .mData, inNumPackets, mp3_buffer, MP3_SIZE); [Самостоятельного sendBuffer: [NSData dataWithBytes: длина mp3_buffer: encodedBytes]]; lame_encode_flush (неточный, mp3_buffer, MP3_SIZE); } Я хочу, чтобы преобразовать playedAudio (буфер) для кодирования данных (с помощью хромой), поэтому я могу отправить на сервер. Пожалуйста, помогите мне.
yogesh
1

голосов
0

ответ
306

Просмотры

TTSPlaybackCreate не удалось инициализировать динамику: -3000 Ошибка

Мое приложение Obj-C с использованием текста для начала речи, чтобы получить [TTS] TTSPlaybackCreate не удалось инициализировать динамику: -3000 ошибки, я понятия не имею, почему это происходит, значит, я проверил интернет и приложение код, если был ответ на эту проблему, но не смог найти. Кажется, новая IOS версии ошибки, но это было давно, что началась эта ошибка, и нет никакого решения пока нет. Развитие было, так как я задал этот вопрос. Я до сих пор не удалось найти причину, почему я имею это сообщение, но я в состоянии сделать это сейчас говорить. utterance.preUtteranceDelay 0,1 utterance.preUtteranceDelay = 0,1; Когда я удалить этот параметр или сделать значение 0. utterance.preUtteranceDelay = 0; [Синт speakUtterance: произнесение]; Делает речь.
Hope
1

голосов
0

ответ
22

Просмотры

Есть ли эквивалент WLAN_FRAME_STATISTICS на MacOS?

В Windows, функция WlanQueryInterface позволяет извлекать WLAN_STATISTICS-структуру, которая, в свою очередь, содержит WLAN_PHY_FRAME_STATISTICS с кучей полезных счетчиков о принятых и отправленных PHY кадров. Теперь, я искал подобные возможности под Mac OS. Я проверил CoreWLAN, но он содержит только информацию CWInterface, но это не имеет статистики кадров (то есть количество кадров, передаваемых по первой попытки, количество кадров, необходимых ретрансляцию и т.д.). Есть ли другая возможность получить эту информацию на MacOS? Может быть, с SYSCTL, или через сторонние библиотеки?
Narcus
1

голосов
0

ответ
248

Просмотры

Упорство WkWebView сессии

У меня есть список серверов в Native. Когда один из пунктов в списке щелкают, я использую WKWebView загрузить URL из пункта. Каждый из сервера имеют свой собственный сеанс входа в систему. Теперь, когда я открываю один из серверных страниц WKWebView и вернуться в список серверов и снова выберите тот же сервер. Вместо использования предыдущей сессии, он создает новый сеанс для сервера. Это приводит к дополнительной лицензии проверяется из сервера. Как проверить, есть ли уже сеанс открыть и использовать эту сессию для WKWebView вместо создания новой сессии каждый раз?
Yogesh Jillanda
1

голосов
1

ответ
356

Просмотры

IOS автоповорота не работает, когда у вас есть различные экраны ориентации

Я работаю на приложение, которое написано в Objective-C. У меня есть дополнительные экраны и все экраны Пейзаж Левые и правые Пейзаж ориентации и эти экраны не должны быть в портретном режиме. Но у меня есть 3 различных экранов, которые должны быть только в портретном режиме не должна быть в ландшафтном левой или ландшафтном праве. Это код для ландшафтного режима для всех screens- И это для портретного режима для моего приложения Это все, что я сделал в моих точке зрения контроллеров и в приложении Plist я добавил необходимые ориентации, как это Info.plist и ориентация приложения устройства автоматически изменения. как это - . Я уверен, что все ясно и должен работать так, как ожидается, но по какой-то причине, когда я использую приложение и блокировки автоповорота и запустить приложение, он автоматически открытие в портретном режиме, и когда я отпереть авторотации будет в ландшафтном и при вращении он будет повернут в портретном режиме. Я использовал shouldAutorate возвращения ДА, потому что он должен повернуть ее автоматически между левым и ландшафтным ландшафтным правом, так что я использовал его также экран режима портрета открывается в портрете, но он autorotating, когда пользователь поворачивает устройство. Любая помощь будет оценена, пожалуйста, поделитесь какие-либо идеи, почему мое приложение не работает, как ожидалось. Я использовал shouldAutorate возвращения ДА, потому что он должен повернуть ее автоматически между левым и ландшафтным ландшафтным правом, так что я использовал его также экран режима портрета открывается в портрете, но он autorotating, когда пользователь поворачивает устройство. Любая помощь будет оценена, пожалуйста, поделитесь какие-либо идеи, почему мое приложение не работает, как ожидалось. Я использовал shouldAutorate возвращения ДА, потому что он должен повернуть ее автоматически между левым и ландшафтным ландшафтным правом, так что я использовал его также экран режима портрета открывается в портрете, но он autorotating, когда пользователь поворачивает устройство. Любая помощь будет оценена, пожалуйста, поделитесь какие-либо идеи, почему мое приложение не работает, как ожидалось.
Bekzod Rakhmatov

Просмотр дополнительных вопросов