Как вывести тип NSString в функции NSLog в Objective-C? - PullRequest
11 голосов
/ 23 ноября 2011

Я хочу ввести от пользователя его имя и вывести это имя в NSLog, используя NSString.Я не знаю, какой знак% и как вывести это.Могу ли я использовать функцию scanf () для этого?Пожалуйста, помогите мне, я только начинающий Objective-C.

Ответы [ 5 ]

28 голосов
/ 23 ноября 2011

Вы можете использовать% @ для всех объектов, включая NSString. Это в свою очередь вызовет метод objects description и выведет соответствующую строку. У большинства объектов уже есть довольно полезное представление (например, объекты NSArray возвращают описания всего своего содержимого).

7 голосов
/ 30 июля 2012

Mark Dylan - это имя, которое будет храниться в переменной Name.

NSString* Name = @"Mark Dylan";

Этот код позволит вам задать их имя и отсканировать его в память, которая будет храниться в переменной Name.

NSLog("What is your name?");
scanf("%@", &Name);

Если вы хотите распечатать переменную, которую вы можете использовать;

NSLog("Your name is %@", Name);
1 голос
/ 23 ноября 2011

NSLog принимает строку формата, поэтому вы можете сделать что-то вроде этого:

#include <stdio.h>
#include <Foundation/Foundation.h>

// 1024 characters should be enough for a name.
// If you want something more flexible, you can use GNU readline:
// <http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html>
#define MAX_NAME_LENGTH 1024

// Get name from user input
char name[MAX_NAME_LENGTH];
name[0] = '\0'; // just in case fgets fails
fgets(name, MAX_NAME_LENGTH, stdin);

// Put name into NSString object and output it.
NSString *name = [NSString stringWithUTF8String:name];
NSLog(@"%@", name);

%@ работает для всех объектов Objective-C.Если вы хотите вывести C-строку (char* или const char*), используйте %s.Никогда не ставьте нелитеральную строку в качестве первого аргумента NSLog, так как это открывает дыры в безопасности.

1 голос
/ 23 ноября 2011

%@ - это то, что вы хотите. Подходит для таких объектов, как NSString, [YourViewController class]

0 голосов
/ 23 ноября 2011

Для получения ввода от пользователя используйте UITextField или NSTextField . Для вывода строки в файл журнала вы можете использовать NSLog, то есть:

NSString* userName = @"Zawmin";

NSLog(@"name = %@", userName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...